Java - JOptionPane.InputDialog - Che cosa succede se utente inserisce alcun input e fa clic su OK?
-
27-09-2019 - |
Domanda
Bene, sto cercando di creare un modo di rilevare se l'input dell'utente nulla e 'OK.' Click
Per esempio, se l'utente sceglie Annulla, mi uscire da un ciclo while con il seguente codice:
if (words[i] == null) break; //breaks out of while loop
Ho provato qualcosa in questo senso per un utente fa clic su OK:
else if (Character.isDigit(words[i].charAt(0)) && words[i].charAt(0) == JOptionPane.OK_OPTION) break;
per uscire dal giro se l'utente dovesse fare clic su OK, ma niente da fare. Ottengo questa eccezione:
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
è di tipo int è per questo che mi sono convertito a int. Qualcuno ha qualche idea su come posso fare questo?
Ho trovato questo post sul tasto 'Cancella', ma nulla del pulsante 'OK'. Grazie!
Soluzione
Quando un utente inserisce alcun input e colpisce bene, il vostro programma è ancora memorizzando la stringa nella propria matrice parole, la stringa sembra appena essere vuota. Un modo semplice per verificare se la stringa è vuota è controllando la sua lunghezza, in modo che il codice che si desidera potrebbe apparire come:
// break if user enters blank input
if( words[i].length() == 0 ) break;