Validação de JtextField com JOptionPane e flags

Veja neste artigo como validar informações de um JTextField antes de tentar realizar uma operação, utilizando JOptionPane e flag.

Neste artigo veremos como realizar validações de dados em componentes JTextField. Os primeiros critérios de validações que serão levados em consideração são os critérios de obrigatoriedade dos campos, garantindo assim a utilização de campos obrigatórios no formulário.

Figura 1. Exemplo do formulário a ser validado

O primeiro passo será montar uma interface a ser validada. No caso a validação será antes da operação de salvar, vamos SUBSTITUIR o comando para salvar pelo código para exibir uma mensagem, a fim de evitar que o código fique muito extenso e difícil de ser compreendido rapidamente.

Para criarmos esse cadastro precisamos inserir 1 JPanel(com borda de título e borda de linha), 5 rótulos, 2 jTextFields, 4 jcombobox e 2 botões.

Vamos aos nomes dos componentes:

Todos os campos acima são definidos como campos obrigatórios.

String validacao=”Campos de Preenchimento Obrigatório”; //variável de validação recebe inicialmente a mensagem acima e após //concatena os campos que ainda não foram preenchidos. int flag=0; // flag é a bandeira que indica se a mensagem de validação deve ser exibida if (jTextFieldLogin.getText().isEmpty()) { validacao=validacao+”\n* Campo de Login deve ser Preenchido” ; flag=1; } if (String.valueOf(jPasswordFieldSenha.getPassword()).length()<=8){ validacao=validacao+ "\n*Campo de Senha com no mínimo 8 caracteres"; flag=1; } if (jComboBoxDia.getSelectedIndex()==0){ validacao =validacao+ "\n* Selecione o Dia de Nascimento"; flag=1; } if (jComboBoxMes.getSelectedIndex()==0){ validacao =validacao+ "\n* Selecione o Mês de Nascimento"; flag=1; } if (jComboBoxAno.getSelectedIndex()==0){ validacao=validacao+ "\n* Selecione o Ano de Nascimento"; flag=1; } if (jComboboxTipoCadastro.getSelectedIndex()==0){ validacao=validacao+ "\n* Selecione o Tipo de Cadastro"; flag=1; } //if que testa o valor dentro da variável flag, caso alguma das obrigatoriedades //não seja satisfeita entrou em um if e a variável flag recebeu 1 //Neste if mandamos exibir a mensagem com o valor da variável validação if(flag==1){ JOptionPane.showMessageDialog(null, validacao); }else{ //aqui o código que deve ser executado após a validação, //entra nesse else ao passar pela validação }
Listagem 1. Código para verificar a obrigatoriedade dos campos

Este código demonstra a simples utilização de lógica para validarmos um JFrame. Utilizamos o conceito de bandeira (flag), ou seja, uma variável com um valor inicial, que caso qualquer circunstância não seja verdadeira, o valor dessa variável é modificado. Essa modificação do valor padrão da variável determina que em uma condição if esse valor deve ser tratado.

No caso do exemplo acima, tratamos como 0 o valor inicial que determina que todos estão corretos, ao entrar em qualquer condição que não esteja verdadeira, mudamos para o valor 1, o que garante em um próximo if qual operação deve ser realizada por essa condição. No caso, mandamos exibir a mensagem de validação. Também aproveitamos os ifs para concatenar uma mensagem personalizada para cada condição de validação do formulário.

Resumindo: o processo foi simples, criamos uma variável flag de controle e mensagens personalizadas para cada tipo de validação definida em nosso formulário.

Explicação das validações:

if (jTextFieldLogin.getText().isEmpty()) { validacao=validacao+”\n* Campo de Login deve ser Preenchido” ; flag=1; }
Listagem 2. Código de validação do campo Login

Na linha do if criamos o teste que verifica se o campo de login está vazio. Estando o campo vazio, entra no if, concatenamos a mensagem que o campo de login deve ser preenchido em uma variável chamada validação(variável para concatenar as mensagens de erros), e trocamos o valor da flag para 1, indicando que deve ser executada a ação de bandeira(flag)1.

if (String.valueOf(jPasswordFieldSenha.getPassword()).length()<=8){ validacao=validacao+ "\n*Campo de Senha com no mínimo 8 caracteres"; flag=1; }
Listagem 3. Código de validação do campo Senha

Na linha do if criamos o teste que verifica se o campo de senha possui no mínimo 8 caracteres. Não contendo 8 caracteres, entra no if, concatenamos a mensagem que o campo de senha deve possuir no mínimo 8 caracteres em uma variável chamada validação(variável para concatenar as mensagens de erros), e trocamos o valor da flag para 1, indicando que deve ser executada a ação de bandeira(flag)1.

if (jComboboxTipoCadastro.getSelectedIndex()==0){ validacao=validacao+ "\n* Selecione o Tipo de Cadastro"; flag=1; }
Listagem 4. Código de validação de campo jcombobox tipo de cadastro

Na linha do if criamos o teste que verifica se o campo tipo de cadastro está selecionado na primeira posição. Estando na primeira posição, entra no if, concatenamos a mensagem que o campo de tipo de cadastro deve ser selecionado em uma variável chamada validação(variável para concatenar as mensagens de erros), e trocamos o valor da flag para 1, indicando que deve ser executada a ação de bandeira(flag)1.

O mesmo procedimento foi executado para os demais comboboxes.

Nota: Este código deve ser o último código dos ifs
if(flag==1){ JOptionPane.showMessageDialog(null, validacao); }else{ //aqui o código que deve ser executado após a validação, //entra nesse else ao passar pela validação }
Listagem 5. Código de ação da bandeira(flag)

Na linha do if criamos o teste que verifica se a variável flag possui o valor 1, teste de ação da bandeira. Caso possua o valor 1, mandamos exibir o valor da variável validação, caso não possua o valor 1, é porque passou por todos os testes de validação, podemos colocar o código para salvar no banco dentro desse if, para exibir, imprimir, etc.

Finalizamos este artigo de validação simples de Jframe.

Artigos relacionados