Java Swing: mise en Œuvre d'un contrôle de validité des valeurs d'entrée

Dans mon Swing application, l'utilisateur doit insérer les numéros et les valeurs, avant de passer à la fenêtre suivante. Maintenant, comme un programme propre devrait, je vérifie chaque entrée si la validité de son ou non, et si non, un message d'erreur s'affiche et la fenêtre suivante ne s'ouvre pas.

La structure de ce contrôle est de la forme suivante (exemple):

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

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

(*) Remarque: je sais que le principe de plusieurs JFrames est moche, et je suis sur de changer cela, mais pour cette question, c'est sans importance.

Maintenant l'objectif de cette question est de cette checkValidity(), je structuré comme ceci:

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

Cela fonctionne exactement comme je le veux, MAIS le code lui-même est très laid, parce que le fait d'avoir plusieurs options d'entrée de la méthode obtient de 200, 300 ou plus de lignes de long (comme je le fais non seulement de vérifier si par exemple il est un certain nombre, mais également si le nombre de sens que dans le contexte de la logique du programme et ainsi de suite). Est-il un Swing -propre méthode pour vérifier de telles choses? Ou quelqu'un a une meilleure idée de la façon de réaliser exactement cette fonctionnalité avec les méthodes split?

OriginalL'auteur Valentino Ru | 2012-10-21