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: