Publié le 07/09/2010
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Filtrer les caracteres dans un JTextField

Pour controler les caractères saisies par un utilisateur, JAVA dispose de plusieurs type de filtres. Une solution consiste à n'autoriser que les caractères que l'on souhaite dans une zone de saisie en ajoutant un addKeyListener. Le listener permet d'avoir un evenement à chaque fois qu'une touche du clavier est appuyée.

Controler les touches du clavier

Dans cet exemple, un listener est ajouté pour filtrer les touches dans un JTextField . Ainsi à chaque fois que l’utilisateur appuie sur une touche du clavier, un évènement est déclenché que l'on peut intercepter dans une class JAVA. Dans notre cas, voyons comment :
- obliger à ne saisir que des chiffres (jTextField_numeric),
- limiter la taille d'un JTextField (jTextField_maxlength).

import java.awt.event.KeyEvent;
 
/**
 * Filtrer les touches du clavier
 * http://www.fobec.com/java/993/filtrer-caracteres-dans-jtextfield.html
 * 
 * @author Axel 2010
 */
public class TextFieldFilter extends javax.swing.JFrame {
 
    /** Creates new form TextFieldFilter */
    public TextFieldFilter() {
        initComponents();
        //Ajouter le listener pour avoir que des chiffres
        jTextField_numeric.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(KeyEvent evt) {
                char c = evt.getKeyChar();
                //le caractère est numérique
                if (c >= '0' && c <= '9') {
                    // System.out.println(evt);
                } else {
                    //suppression du caractère
                    evt.consume();
                }
            }
        });
 
        //Ajouter un listener pour limiter la taille à 5 caractères
        jTextField_maxlength.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(KeyEvent evt) {
                int len=jTextField_maxlength.getText().length();
 
                if (len>=5) {
                  evt.consume();  
                }                
            }
        });
    }                    
 
    /**
     * Exemple
     */
    public static void main(String args[]) {
       final TextFieldFilter frame = new TextFieldFilter();
        frame.setDefaultCloseOperation(TextFieldFilter.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
 
} 


Dans les deux cas, la meme technique est utilisée:
- intercepter l’événement d'appui d'une touche du clavier avec keyTyped(KeyEvent evt),
- définir sa règle de validation du caractère saisie,
- le cas écheant retirer le caractère saisi en supprimer le message avec evt.consume().

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
07/09/2010
Visualisation
vu 4103 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par ZINEDDINE dans CMS

SaLUT Monsieur
tu peux avec ce deux mot pass ouvrir tous les tables paradox
1-jIGGAe
2-cupcdvum
respecter le majjuscul
bonne chance .

Publié par D&Atilde;&copy;butant dans CMS

merci , et bon courage pour d'autre programme

Publié par chuchunain dans tuto

Petite correction dans votre code. Le premier graphe genere avec 15 valeurs aleatoires devrait faire appel au graphe "myGraph" et non "graph" sinon l'objet canvas ne recoit rien. m...

Publié par fobec dans CMS

faire le menage !!!!

Publié par jmc dans CMS

Lien sur mon site, rubriques Téléchargez http://users.skynet.be/jean-marie.capellen/