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:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
}
}
});
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 } } });
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:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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);
}
}
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); } }
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:

Le code ci-dessus fonction aussi pour JTextArea

 

Laisser un commentaire

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