JTextField qui n’accepte que des chiffres – Java
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 non numérique dans un JTextField.
Exemple:
JTextField textField = new JTextField(15); textField.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); if ( ((c < '0') || (c > '9')) && (c != KeyEvent.VK_BACK_SPACE)) { e.consume(); // ignorer l'événement } } });
Ici, nous ignorons l’événement capturé si il s’agit d’un caractère non numérique.
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 nombre: "); JTextField textField = new JTextField(15); add(lbl); add(textField); textField.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); if ( ((c < '0') || (c > '9')) && (c != KeyEvent.VK_BACK_SPACE)) { e.consume(); // ignorer l'événement } } }); setSize(310,70); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } }
Sortie: