Java Swing: реализация проверки правильности входных значений
В моем приложении Swing пользователь должен вставить цифры и значения, прежде чем перейти к следующему окну. Теперь, как и чистой программе, я проверяю каждый ввод, если он действителен или нет, и если нет, отображается сообщение об ошибке, и следующее окно не открывается.
Структура этой проверки следующая (пример):
Button buttonToOpenNextWindow = new JButton("next");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(checkValidty){
// (...)
new WindowA();
frame.dispose(); // (*)
}
}
});
(*) Запись: Я знаю, что принцип множественных JFrames уродлив, и я собираюсь изменить это, но для этого вопроса это не имеет значения.
Теперь фокус этого вопроса заключается в следующемcheckValidity()
, который я структурировал так:
private boolean checkValidity(){
// check input 1
try{
Integer.parseInt(textField1.getText());
}catch (NumberFormatException e){
new ErrorDialog("input 1 is invalid!"); // own implemented dialog
return false;
}
// check input 2
try{
Integer.parseInt(textField2.getText());
}catch (NumberFormatException e){
new ErrorDialog("input 2 is invalid!"); // own implemented dialog
return false;
}
// (...)
// check input n
try{
Integer.parseInt(textField_n.getText());
}catch (NumberFormatException e){
new ErrorDialog("input n is invalid!"); // own implemented dialog
return false;
}
return true;
}
Это работает именно так, как я хочу, НО сам код очень уродлив, потому что, имея несколько вариантов ввода, метод получает 200, 300 или более строк (так как я проверяю не только, например, число ли это, но также и то, имеет ли число смысл в контексте логики программы и т. д.). Есть ли метод Swing -own для проверки таких вещей? Или у кого-нибудь есть лучшая идея, как реализовать именно эту функциональность с помощью методов разделения?