Java - JOptionPane.InputDialog - Che cosa succede se utente inserisce alcun input e fa clic su OK?

StackOverflow https://stackoverflow.com/questions/3859355

  •  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!

È stato utile?

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;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top