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?