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 3780 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Laurent dans java

Rectification:
fonctionne en mode plein ecran avec la barre masque sur ajout d'un setUndecorated(true)

Encore merci :)

Publié par Anis Hidouri dans java

Très bon exemple même si le drivers jdbc comporte quelques erreurs !!!

Publié par Djrac dans tuto

Bjr.
J'ai essaye ce code mais en cliquant sur f5 il me donne un autre temps d'execution malgre qu'il s'agit du meme page PHP. Je comprends pas ou il est le probleme.
Merci de m...

Publié par IB dans tuto

On ne voit pas le gros bouton rouge 'Download' pour charger les 3 scripts, dont vous parlez sur le site

Publié par Fobec dans tuto

Bonjour,

Sur Fobec.com, nous utilisons mod_expires.c pour envoyer automatiquement un code 304 au navigateur internet.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType im...