2010-10-04 38 views
2

Eh bien, j'essaie de créer un moyen de détecter si l'utilisateur n'entre rien et clique sur 'OK'.Java - JOptionPane.InputDialog - Que se passe-t-il si l'utilisateur n'entre aucune entrée et clique sur OK?

Par exemple, si l'utilisateur clique annuler, je sortir d'une boucle while avec le code suivant:

if (words[i] == null) break; //breaks out of while loop 

J'ai essayé quelque chose le long de ces lignes pour un utilisateur en cliquant sur OK:

else if (Character.isDigit(words[i].charAt(0)) && words[i].charAt(0) == JOptionPane.OK_OPTION) break; 

pour sortir de la boucle si l'utilisateur devait cliquer sur OK, mais pas de dés. Je reçois cette exception:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0 
at java.lang.String.charAt(Unknown Source) 
at Project1.main(Project1.java:21) 

OK_OPTION est de type int qui est la raison pour laquelle je me suis converti en int. Est-ce que quelqu'un a des idées de comment je peux faire cela?

J'ai trouvé cet article sur le bouton 'Annuler' mais rien sur le bouton 'OK'. Merci!

Répondre

1

Lorsqu'un utilisateur n'entre aucune entrée et frappe correctement, votre programme stocke toujours la chaîne dans votre tableau de mots, la chaîne est simplement vide. Un moyen facile de vérifier si la chaîne est vide est de vérifier sa longueur, de sorte que le code que vous voulez ressembler à:

// break if user enters blank input 
if(words[i].length() == 0) break;