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

Publié par Annuaire francophone dans tuto

Bonjour, savez-vous s'il existe un logiciel de capture d'écran (ascreen) pour window. Merci

Publié par IANDRY dans tuto

c'est bien d'avoir les images et liste des pays du monde avec leurs drapeaux
respectif

Publié par robbie dans tuto

desole pour le message en multiple j'ai eu un ptit beug

Publié par nico dans java

Petite erreur constate.
Apparemment il faut remplacer :
&mailTo = &?body=Envoyer un email avec Java
par &mailTo = < et commercial sans '<' et '>' &body=Envoyer un email avec Java

Publié par diet dans CMS

Mais programme-dietetique.com est un site. En logiciel il y a diettesettics.com