Java Swing: Implementando uma verificação de validade dos valores de entrada
No meu aplicativo Swing, o usuário deve inserir números e valores antes de passar para a próxima janela. Agora, como um programa limpo deveria, eu verifico cada entrada se é válida ou não, e se não, uma mensagem de erro é exibida e a próxima janela não abre.
A estrutura dessa verificação é a seguinte (exemplo):
Button buttonToOpenNextWindow = new JButton("next");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(checkValidty){
// (...)
new WindowA();
frame.dispose(); // (*)
}
}
});
(*) Nota: Eu sei que o princípio de múltiplos JFrames é feio, e estou mudando isso, mas para essa questão é irrelevante.
Agora, o foco desta questão é estecheckValidity()
, que eu estruturei assim:
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;
}
Isso funciona exatamente como eu quero, MAS o código em si é muito feio, porque tendo múltiplas opções de entrada o método recebe 200, 300 ou mais linhas (já que eu não apenas verifico se é um número, mas também se o número faz sentido no contexto da lógica do programa e assim por diante). Existe um método Swing -own para verificar essas coisas? Ou alguém tem uma idéia melhor de como realizar exatamente essa funcionalidade com métodos divididos?