Хорошо, у меня есть этот код, который запрашивает ввод имени пользователя и пароля.Я использовал JOptionPane
.Что я хочу с программой, так это отображать сообщение об ошибке, если вход в поле имени пользователя имеет номер, и возвращается к предыдущему диалоговому окну, снова запрашивая имя пользователя.У меня есть цикл while, но он не работает так, как должен.Пожалуйста, помогите.Программа не показывает сообщение об ошибке в моем методе catch
, и при этом она не зацикливается на отображении диалогового окна.
public class SwingExercise {
public static void main(String[] args) {
String name = "";
String pw = "";
boolean input = true;
boolean hasDigit = false;
while (input) {
try {
while (name.equals("")) {
name = JOptionPane.showInputDialog(null, "Enter username:");
if (name.equals("")) {
JOptionPane.showMessageDialog(
null, "No input.", "Error", JOptionPane.ERROR_MESSAGE);
name = "";
}
while (hasDigit) {
for (int i = 0; i < name.length(); i++) {
if (Character.isDigit(name.charAt(i))) {
throw new InputMismatchException();
}
}
hasDigit = false;
}
}
input = false;
while (pw.equals("")) {
pw = JOptionPane.showInputDialog(null, "Enter password:");
if (pw.equals("")) {
JOptionPane.showMessageDialog(
null, "No input.", "Error", JOptionPane.ERROR_MESSAGE);
pw = "";
}
}
} catch (NullPointerException e) {
System.exit(0);
} catch (InputMismatchException e) {
JOptionPane.showMessageDialog(
null, "Invalid input.", "Error", JOptionPane.INFORMATION_MESSAGE);
}
}
}
Пожалуйста, упоминайте любые комментарии относительно других строк в моем коде и, еслиЕсть какие-то ненужные строки.Заранее спасибо:)