Диалоговое окно «Проверка ввода» - PullRequest
5 голосов
/ 01 марта 2011

Привет, я чувствую себя довольно глупо, спрашивая это, потому что я должен быть в состоянии сделать это, но я не могу! Я также проверил в сети и в своей книге, и для такой простой вещи нет ничего (или я могу видеть это).

Что я хочу сделать, так это представить пользователя с JOptionPane.showInputDialog (null, ... и проверить

  1. это не пусто
  2. не содержит цифр или специальных символов, таких как /> <.! "£ $% ^ & * () </li>

если ни один из этих тестов не показывает заново окно, поэтому они должны это сделать, да, это так просто, но я просто не могу разобраться: (

Пожалуйста, пожалей мою глупость! Спасибо за любую помощь, заранее она оценена!

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Иметь метод, который показывает диалог ввода, проверяет ввод и возвращает ввод, если он в порядке, иначе он вызывает себя, чтобы повторить процесс, пока ввод не будет действительным. Примерно так:

private String showInputDialog()
{
    String inputValue = JOptionPane.showInputDialog("Please input something");

    if(inputValue == null || inputValue.isEmpty() || !inputValue.matches("[A-Za-z]*"))
    {
        inputValue = showInputDialog();
    }

    return inputValue;
}

Где !inputValue.matches("[A-Za-z]*") сработает на любом входе, кроме любого количества букв от a до z, в верхнем или нижнем регистре.

Затем из вашего кода вы просто вызываете его и делаете с возвращаемым значением все, что хотите.

String input = showInputDialog();
System.out.println(input);
0 голосов
/ 01 марта 2011

Делайте так, как вы описываете. Откройте диалоговое окно и проверьте результат. Если это не так, снова откройте диалоговое окно.

Возможно, вы захотите использовать цикл do while или что-то подобное, чтобы всегда цикл один раз Также вы захотите использовать регулярное выражение для проверки того, что специальных символов не существует.

...