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.

Exemplo do formulário a ser validado
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:

  • jTextFieldLogin = Campo de texto do login;
  • jPasswordSenha = Campo de senha;
  • jComboboxTipoCadastro = Componente do tipo de cadastro;
  • jComboBoxDia, jComboBoxMes, jComboBoxAno = Componentes para data.

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.