У меня есть диалоговое окно, которое создает себя и должно проверять вход пользователя. На данный момент я могу заставить его проверить пустой ввод и правильно разобрать вход пользователя, когда он является Integer, однако я продолжаю получать NumberFormatException при проверке с помощью String. Добавление попытки, catch остановило JVM от сбоя, но входной сигнал затем был нулевым.Подтвердить ввод до нажатия кнопки в Java
public void initDialog() {
dPanel = new JPanel();
dPanel.setLayout(new BoxLayout(dPanel, BoxLayout.Y_AXIS));
JLabel invalidInput = new JLabel("");
String[] options = {"OK"};
dPanel.add(new JLabel("Game default target is 101, enter a number below to change it"));
dPanel.add(new JLabel("Leave blank to start with the default"));
dPanel.add(invalidInput);
JTextField text = new JTextField("");
text.requestFocusInWindow();
dPanel.add(text);
int changeGameTarget = JOptionPane.showOptionDialog(null, dPanel, "Dice Game", JOptionPane.NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
dialogHandler(changeGameTarget, text, invalidInput);
text.setText("");
}
Диалог метод обработки
public boolean dialogHandler(int op, JTextField text, JLabel nonDigit) {
String s = text.getText();
try {
if (op == JOptionPane.OK_OPTION) {
if (s.isEmpty()) {
target = 101;
} else {
target = Integer.parseInt(s);
}
}
} catch (NumberFormatException ex){
nonDigit.setText("This is not a number");
return false;
}
return true;
}
так, когда вход не integeter, вы хотите, чтобы пользователю ввести что-то другое? – PKlumpp
Да, я хочу, чтобы пользователь должен был ввести ввод, который является действительным – W1492046