Java Swing: Implementieren einer Gültigkeitsprüfung von Eingabewerten

In meiner Swing-Anwendung muss der Benutzer Zahlen und Werte eingeben, bevor er zum nächsten Fenster wechselt. Nun, wie ein sauberes Programm sollte, überprüfe ich jede Eingabe, ob sie gültig ist oder nicht, und wenn nicht, wird eine Fehlermeldung angezeigt und das nächste Fenster öffnet sich nicht.

Die Struktur dieser Prüfung ist wie folgt (Beispiel):

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

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

(*) Hinweis: Ich weiß, dass das Prinzip mehrerer JFrames hässlich ist, und ich werde das ändern, aber für diese Frage ist es irrelevant.

Nun liegt der Fokus dieser Frage auf diesem ThemacheckValidity(), die ich so aufgebaut habe:

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

Dies funktioniert genau so, wie ich es möchte, ABER der Code selbst ist sehr hässlich, da die Methode bei mehreren Eingabemöglichkeiten 200, 300 oder mehr Zeilen lang wird (da ich nicht nur überprüfe, ob es sich beispielsweise um eine Zahl handelt, sondern auch, ob die Zahl Sinn macht im Kontext der Programmlogik und so weiter). Gibt es eine Swing-Down-Methode, um solche Dinge zu überprüfen? Oder hat jemand eine bessere Idee, wie genau diese Funktionalität mit Split-Methoden realisiert werden kann?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage