OVH Cloud OVH Cloud

JTextFeld

2 réponses
Avatar
Rolland T. Chago
slut ,
j´aimerai savoir quelle methode je dois utiliser afin que un JTextFeld du
paquet javax.swing seulement les chiffres jusqu´a une certaine longueur fixe
accepte

Peace
Rolland

2 réponses

Avatar
Arthur
slut ,
j´aimerai savoir quelle methode je dois utiliser afin que un JTextFeld du
paquet javax.swing seulement les chiffres jusqu´a une certaine longueur fixe
accepte

Peace
Rolland


Bonjour

voici un exemple de la doc des API, pour mettre en capital:

public class UpperCaseField extends JTextField {

public UpperCaseField(int cols) {
super(cols);
}

protected Document createDefaultModel() {
return new UpperCaseDocument();
}

static class UpperCaseDocument extends PlainDocument {

public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {

if (str == null) {
return;
}
char[] upper = str.toCharArray();
for (int i = 0; i < upper.length; i++) {
upper[i] = Character.toUpperCase(upper[i]);
}
super.insertString(offs, new String(upper), a);
}
}
}

Cela devrait t'aider !

Avatar
cho7
Autre solution que celle proposée au dessus :
une méthode bidon* qui est lancée régulièrement (evenement actionPerformed
ou keypressed du JTextField par exemple) qui se charge de parcourir tout le
texte et d'éliminer les caractères n'etant pas des chiffres et de remettre
le focus à la fin du JTextField ou bien d'intercepter la dernière touche
préssée. La taille max ca doit pouvoir se gérer via le composant itself,
mais ca fait un moment que j'ai pas touché à Swing...

*exemple de code bidon :

public String extraireNombre(String c){
StringBuffer s = new StringBuffer("");
for (int i=0;i<c.length();i++)
if (("0123456789").lastIndexOf(c.charAt(i))!=-1)
s.append(c.charAt(i));

return s.toString();
}

Voila, désormais extraireNombre("H1L2L3O4") retourne "1234"
M'enfin, ce code est a but pédagogique hein, ya surement mieux, faut juste
prendre le temps de chercher un peu...


"Rolland T. Chago" a écrit dans le
message de news:
slut ,
j´aimerai savoir quelle methode je dois utiliser afin que un JTextFeld du
paquet javax.swing seulement les chiffres jusqu´a une certaine longueur
fixe

accepte

Peace
Rolland