2010-12-14 46 views
1

Juste une petite question, Comment puis-je m'assurer que mon JtextField n'accepte que les valeurs numériques? je le veux à diplsy un message d'erreur si l'utilisateur a entré quelque chose d'autre merciJava JTextfields

+3

Voir aussi http://stackoverflow.com/questions/1313390/is-there-any-way-to-accept-only-numeric-values-in-a-jtextfield/1313448#1313448 - pas besoin pour méchante erreur messasges. –

+0

Essayez ceci: http://stackoverflow.com/questions/1313390/is-there-any-way-to-accept-only-numeric-values-in-a-jtextfield – Igor

Répondre

6

Vous pouvez utiliser un JFormattedTextField. Construisez-le en utilisant un NumberFormatter et il n'acceptera que des nombres.

Le JFormattedTextField a un tas d'options configurables qui vous permettent de décider à quel point les entrées sont mal gérées. Je recommande de regarder la documentation.

1

Vous pouvez ajouter un écouteur d'événement de clé et vérifier chaque caractère tapé ou il existe des formateurs de document (NumberFormatter) que vous pouvez installer et qui ne vous permettront pas d'entrer autre chose qu'un nombre.

0

Associez un écouteur de touche au champ de texte et vérifiez la valeur que vous venez d'insérer. Si la valeur insérée n'est pas un nombre entier, indiquez une erreur.

+0

J'aime cette idée mais mais comment pourrais-je vérifier la valeur entrée? pourriez-vous avoir un exemple de code? merci – Maxi90

-1

J'utilise cette astuce.

private void myTextFieldKeyReleased(java.awt.event.KeyEvent evt) { 
try{ 
int i = Integer.parseInt(myTextField.getText()); 
} 
catch(Exception ex){ 
//Show error message here with 
JOptionPane.showMessageDialog(null, "Invalid Input...!"); 
myTexTField.setText(""); 
} 
} 
+0

keyListeners sont trop bas niveau pour une telle tâche, ils ne sont pas assez sûrs: il va manquer texturé collé. – kleopatra