Java Swing: Implementando una verificación de validez de los valores de entrada

En mi aplicación Swing, el usuario debe insertar números y valores, antes de pasar a la siguiente ventana. Ahora, como un programa limpio debería, verifico cada entrada si es válida o no, y si no, se muestra un mensaje de error y la siguiente ventana no se abre.

La estructura de esta comprobación es la siguiente (ejemplo):

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

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

(*) Nota: Sé que el principio de múltiples JFrames es feo, y estoy por cambiarlo, pero para esta pregunta es irrelevante.

Ahora el foco de esta pregunta es estecheckValidity(), que estructuré así:

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

Esto funciona exactamente como quiero, PERO el código en sí es muy feo, porque al tener varias opciones de entrada, el método tiene 200, 300 o más líneas de largo (ya que no solo compruebo si, por ejemplo, es un número, sino también si el número tiene sentido en el contexto de la lógica del programa y así sucesivamente). ¿Hay un método de Swing -own para verificar tales cosas? ¿O alguien tiene una mejor idea de cómo realizar exactamente esta funcionalidad con métodos divididos?

Respuestas a la pregunta(4)

Su respuesta a la pregunta