Java — JOptionPane.InputDialog — Что делать, если пользователь не вводит никаких данных и нажимает «ОК»?

Что ж, я пытаюсь создать способ определения, не вводит ли пользователь ничего и не нажимает «ОК».

Например, если пользователь нажимает кнопку «Отмена», я прерываю цикл while следующим кодом:

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

Я пробовал что-то в этом роде, когда пользователь нажимал OK:

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

выйти из цикла, если пользователь нажмет OK, но не кубик. Я получаю это исключение:

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 имеет тип int, поэтому я преобразовал его в int. У кого-нибудь есть идеи, как я могу это сделать?

Я нашел этот пост о кнопке «Отмена», но ничего о кнопке «ОК». Спасибо!


person Aryan Jabbari    schedule 04.10.2010    source источник


Ответы (1)


Когда пользователь не вводит никаких данных и нажимает «ОК», ваша программа все еще сохраняет строку в вашем массиве слов, строка просто оказывается пустой. Простой способ проверить, является ли строка пустой, — это проверить ее длину, поэтому код, который вы хотите, может выглядеть так:

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