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.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados