bonjour tout le monde
je veux savoir comment refuser les lettrres dans un TextField en JAVA
par exemple en vb.net on utilise l'événement KeyPress d'une TextBox
e.Handled = not char.isdigit(e.keychar)
et merci d'avance
Version imprimable
bonjour tout le monde
je veux savoir comment refuser les lettrres dans un TextField en JAVA
par exemple en vb.net on utilise l'événement KeyPress d'une TextBox
e.Handled = not char.isdigit(e.keychar)
et merci d'avance
Tu veut refuser toutes les lettre dans un TextField ?
Si c'est ca, je pense qu'i va falloir t'orienter vers un JFormattedTextField avec un NumberFormat
Sinon tu peux utiliser un KeyListener...
meeeeeeeeeeerci
Je profite de ce post pour poser une question similaire, sans ouvrir un autre fil.
Moi, je dois faire un champs d'encodage, où l'utilisateur ne doit pouvoir entrer que les caractères suivants :
abcdefghijklmnopqrstuvwxyz
0123456789_
et rien d'autre (pas d'accents, pas même l'espacement !).
Est-ce que le JFormattedField est ce qu'il me faut utiliser ?
Ou alors dois-je plutôt faire un JTextField, avec un keylistener ?
Qu'est-ce qui est mieux, selon vous ?
Ou plus beau encore le framework de validation JGoodies
Joli ! J'irai jeter un oeil plus en détail quand j'aurai du temps.
Mais bon,
pour l'heure, je préfère faire appel le moins possible à des bibliothèques externes.
Alors, JTextField ou JFormatedField ?
;)
Oui, si tu restes avec l'API standard, un JFormattedTextField peut suffire. Si pour des raisons quelconques tu es oblige d'utiliser un JTextField normal, alors tu fais un setDocument(myDocument) ou myDocument est une surcharge a toi de java.swing.text.PlainDocument dans lequelle tu auras redefini la methode public void insertString(int offs, String s, AttributeSet a) pour n'accepter que les caracteres qui t'interesses.
Le débutant que je suis aimerais bien savoir comment formater un JFormattedTextField afin de filtrer la saisie ?...
En fait il faut lui passer un format en paramètre du constructeur. Par exemple, si tu veut lui permettre que les chiffres, tu vas faire quelque chose comme ca :
Code:
1
2
3
4
5
6
7
8
9 NumberFormat format = NumberFormat.getNumberInstance(); format.setParseIntegerOnly(true);//Tu lui dis de prendre seulement les entiers format.setGroupingUsed(false);//Tu llui dis de ne pas grouper les chiffres JFormattedTextField fieldInteger = new JFormattedTextField(format); ((DefaultFormatter)fieldInteger .getFormatter()).setAllowsInvalid(false);//Ici tu lui dis de faire le controle à chaque entrée et de refuser les invalides
Merci bien :ccool: