Java Swing: Wdrażanie sprawdzania poprawności wartości wejściowych

W mojej aplikacji Swing użytkownik musi wstawić liczby i wartości przed przełączeniem do następnego okna. Teraz, gdy czysty program powinien, sprawdzam każde wejście, jeśli jest poprawne lub nie, a jeśli nie, wyświetlany jest komunikat o błędzie, a następne okno nie otwiera się.

Struktura tego sprawdzenia jest następująca (przykład):

Button buttonToOpenNextWindow = new JButton("next");
button.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent e){
        if(checkValidty){
            // (...)
            new WindowA();
            frame.dispose(); // (*)
        }
    }
});

(*) Uwaga: Wiem, że zasada wielu ramek JFrame jest brzydka i zamierzam to zmienić, ale w tym pytaniu nie ma to znaczenia.

Teraz celem tego pytania jest tocheckValidity(), które tak skonstruowałem:

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;
}

Działa to dokładnie tak, jak chcę, ALE sam kod jest bardzo brzydki, ponieważ posiadanie wielu opcji wprowadzania powoduje, że metoda ma długość 200, 300 lub więcej linii (ponieważ nie tylko sprawdzam, czy np. Jest to liczba, ale także, czy liczba ma sens) w kontekście logiki programu i tak dalej). Czy istnieje metoda Swing-on do sprawdzenia takich rzeczy? A może ktoś ma lepszy pomysł, jak zrealizować dokładnie tę funkcję za pomocą metod dzielonych?

questionAnswers(4)

yourAnswerToTheQuestion