Повторный запрос пользователя на ввод данных с помощью оператора if

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

Это то, что у меня есть до сих пор:

public void getValues(){
    firstName = JOptionPane.showInputDialog(null, "Please enter employee's first name");

    if (firstName.equals("")){

        JOptionPane.showMessageDialog(null,"Please enter a first name, next time.");
        System.exit(-1);
    } else {

    lastName = JOptionPane.showInputDialog(null, "Please enter employee's last name");

    if (lastName.equals("")){

        JOptionPane.showMessageDialog(null,"Please enter a last name, next time.");
        System.exit(-1);
    } else {

Спасибо.


person Ben Allen    schedule 22.01.2012    source источник


Ответы (3)


При необходимости используйте цикл while, пока не получите нужный ввод.

Вот фрагмент.

String firstname = JOptionPane.showInputDialog(null, "Name?");
while(firstname.equals("")) {
    firstname = JOptionPane.showInputDialog(null, "You need to enter a first name!);
}
person Makoto    schedule 22.01.2012

Вы можете использовать оператор while, чтобы постоянно запрашивать у пользователя ввод до тех пор, пока ввод не будет действительным.

Ex:

while((firstName = JOptionPane.showInputDialog(null, "Your Message")).equals("")){
    JOptionPane.showMessageDialog(null, "That name isn't valid!");
}
person Jeffrey    schedule 22.01.2012

Вы можете сделать что-то вроде этого:

do {
    firstName = JOptionPane.showInputDialog(null, "Please enter employee's first name");
} while (firstName != null && firstName.equals(""));
if (firstName == null) {
    // user canceled
}
person Ted Hopp    schedule 22.01.2012