Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 ..."
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 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"
Vous n’avez pas trouvé la réponse que vous recherchez ?
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 ..."