Swing--->jtextfield--->keypressed

cs_kam81 Messages postés 114 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 11 février 2009 - 24 juil. 2006 à 15:12
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 25 juil. 2006 à 00:50
salut,
je suis debutant en java.Comment gerer l'evenement keypressed d'un jtextfield pour ne permettre de taper que des chiffres par exemple.

8 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
24 juil. 2006 à 16:42
salut,


pour ton cas regarde du coté de la redef de PlainDocument et ajoute le a ton jtextfield


exemple

public class MonDigitDocument extends PlainDocument{

...

//traitement

...

}


monJTextField.setDocument(new MonDigitDocument());

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 juil. 2006 à 23:16
http://codyx.org/snippet_autoriser-saisie-chiffres-dans-champ-texte_119_l_java_21.aspx

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
24 juil. 2006 à 23:34
Salut,

c'est pas pour critiquer mais c'est trop bourin et tu ne peux pas avoir un contrôle temps réel dessus tandis que la redef de PlainDocument permet d'avoir un controle sur l'insertion, suppression et modification en permanence sur ton composant texte

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
24 juil. 2006 à 23:39
oui c'est vrai
mais "je suis debutant en java." ta maniere de faire n'est pas forcement adapte a un debutant ...
cela dit elle est parfaitement valable

je ne la connaissait pas :$ me suis renseigne quand tu en as parlé

++
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
25 juil. 2006 à 00:33
Salut,

allé je suis prince ce soir :D (le code utilise la techno jdk 1.5 (ref boucle for))

import java.awt.Toolkit;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class DigitDocument extends PlainDocument{
    private static final long    serialVersionUID    = -2202805707064799711L;
   
    public DigitDocument() {
        super();
    }
   
    /**
     * redefinition de la methode d'insertion
     */
    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException{
        if (str == null)//pour eviter les NullPointerException (juste par precaution)
            return;
        String digit = "";
        for (char c : str.toCharArray())
            if (Character.isDigit(c)) digit += c;
            else {
                //optionel juste pour faire un petit beep en cas de saisie d'un caractere autre qu'un digit
                Toolkit.getDefaultToolkit().beep();
                break;
            }
        //on retourne notre chaine
        super.insertString(offs, digit, a);
    }
}

maintenant pour l'utilisation c'est super simple

JTextField txt = new JTextField
txt.setDocument(new DigitDocument());

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
25 juil. 2006 à 00:36
je connaissait pas cette maniere de proceder ...
si t'as envie tu pourrais aller le mettre sur codyx :p

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
25 juil. 2006 à 00:49
j'ai demandé mais visiblement il ne gere pas les doublons (pour bientot)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
25 juil. 2006 à 00:50
j'appel pas ca un doublon ...
en programmation tu as dix mille maniere pour faire la meme chose mais bon :p

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Rejoignez-nous