Limiter le nombre de caractères tapés dans un JTextfield

JTextField est l’un des composants les plus importants qui permettent à l’utilisateur de saisir une valeur de texte dans une seule ligne. Nous pouvons limiter le nombre de caractères que l’utilisateur peut entrer dans un JTextField en utilisant la classe PlainDocument.

Dans l’exemple ci-dessous, nous pouvons implémenter la logique en utilisant la classe PlainDocument, donc nous pouvons autoriser un utilisateur à entrer un maximum de 5 caractères.
 
 

Exemple:
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;

public class Test extends JFrame 
{  
   public static void main(String[]args){
      new Test().initComponent();
   }
   public void initComponent() {
      setLayout(new FlowLayout());
      JLabel lbl = new JLabel("Entrez un texte: ");
      JTextField texte = new JTextField(15);
      add(lbl);
      add(texte);
      texte.setDocument(new LimitJTextField(5));
      setSize(300,70);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }
}

class LimitJTextField extends PlainDocument 
{
   private int max;
   LimitJTextField(int max) {
      super();
      this.max = max;
   }
   public void insertString(int offset, String text, AttributeSet attr) throws BadLocationException {
      if (text == null)
         return;
      if ((getLength() + text.length()) <= max) {
         super.insertString(offset, text, attr);
      }
   }
}

Sortie:


 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *