Empêcher la saisie de certaines caractères dans un JTextField

JTextField est un composant Swing, il doit donc y avoir un objet listener pour qu’il soit utile. Vous pouvez ajouter le listener KeyListener pour empêcher l’utilisateur de saisir des caractères spéciaux, des espaces, des nombres, etc dans un JTextField.
 
 


 

Exemple:
JTextField textField = new JTextField(15);
   
textField.addKeyListener(new KeyAdapter() {
	public void keyTyped(KeyEvent e) {
		char c = e.getKeyChar();
		   if(!(Character.isAlphabetic(c) || (c==KeyEvent.VK_BACK_SPACE) || c==KeyEvent.VK_DELETE )) {
			  e.consume();  // ignorer l'événement
		}
	 }
});

Ici, nous ignorons l’événement capturé si il s’agit d’un caractère spécial, espace, ou un nombre.
 

Exemple Complet:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

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 textField = new JTextField(15);
      add(lbl);
      add(textField);
   
      textField.addKeyListener(new KeyAdapter() {
         public void keyTyped(KeyEvent e) {
             char c = e.getKeyChar();
             if(!(Character.isAlphabetic(c) || (c==KeyEvent.VK_BACK_SPACE) || c==KeyEvent.VK_DELETE )) {
                 e.consume();  // ignorer l'événement
             }
         }
      });
   
      setSize(300,70);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }
}

Sortie:

Le code ci-dessus fonction aussi pour JTextArea

 

Partagez cet article

Laisser un commentaire

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