component swing jtextfield accepter seulement l'alphabet et de l'espace blanc
je veux utilisateur de saisir uniquement l'alphabet ou un espace blanc
si l'utilisateur entre autre personnage , je veux donner un message avec jOptionPane
j'ai cherché et j'ai essayé le code ci-dessous
if (!(Pattern.matches("^[a-zA-Z]+$", answerField1.getText())))
JOptionPane.showMessageDialog(null, "Please enter a valid character", "Error", JOptionPane.ERROR_MESSAGE);
mais maintenant ce que je entrer il donne l'erreur
maintenant j'ai changé le code
Pattern letterPattern = Pattern.compile("^[a-zA-Z]+$");
if (!(letterPattern.matcher(answerField1.getText()).matches()))
{
JOptionPane.showMessageDialog(null, "Please enter a valid character", "Error", JOptionPane.ERROR_MESSAGE);
}
maintenant, il donne le message d'une seule première fois que l'utilisateur entre un nombre .
comment puis-je résoudre ce
Voir cette réponse: stackoverflow.com/a/8017847/597657
merci mais tous les exemples de numéros de est-il un exemple de l'alphabet ? parce que je ne pouvais pas comprendre comment convertir le code de l'alphabet
Vous pouvez utiliser JFormattedTextField ainsi
merci mais tous les exemples de numéros de est-il un exemple de l'alphabet ? parce que je ne pouvais pas comprendre comment convertir le code de l'alphabet
Vous pouvez utiliser JFormattedTextField ainsi
OriginalL'auteur mxyz | 2012-12-27
Vous devez vous connecter pour publier un commentaire.
Utiliser un
DocumentFilter
, voici un exemple que j'ai fait, il n'acceptera que des caractères alphabétiques et les espaces blancs:OriginalL'auteur David Kroukamp
Vous avez un point-virgule à la fin de la première ligne. Donc, il n'est pas vraiment tester correctement.
Une déclaration de ce type (qui est ce que vous avez):
exécutera l'instruction vide (;) si la condition est vraie et puis aller à la ligne suivante. Si la condition est fausse, il suffit d'aller à la ligne suivante. Ces deux actions ont le même résultat.
Vous pouvez essayer en utilisant des accolades sur tous les "si" des déclarations. Il est fastidieux parfois, mais il est plus difficile de désordre.
C'est ce que je ferais. Vous pouvez simplement effacer le point-virgule.
rien ne change. est-il une autre façon de le faire ?
1) Essayez-le pas à pas grâce à l'aide d'un débogueur. Il est plus facile de voir ce qui se passe si vous faites un peu de variables locales pour la valeur de texte et le résultat du match() de l'appel.
2) Testez votre expression régulière ici (cliquez) pour voir si sa fonctionne comme vous le pensez.
OriginalL'auteur Lee Meador