Interfaces graphiques

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.
 
[wx_adsense]  


 

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

 
[wx_amazon]

Laisser un commentaire

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