Java - JOptionPane.InputDialog - Что делать, если пользователь не вводит ввод и нажимает кнопку ОК? - PullRequest
2 голосов
/ 05 октября 2010

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

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

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

Я пытался что-то в этом духе, когда пользователь нажимал ОК:

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

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

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

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

1 Ответ

1 голос
/ 05 октября 2010

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

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