Validação de JtextField com JOptionPane e flags

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

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.

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.

Listagem 1: Código para verificar a obrigatoriedade dos campos

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
}
 

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:

Listagem 2: Código de validação do campo Login

if (jTextFieldLogin.getText().isEmpty()) {
validacao=validacao+”\n* Campo de Login deve ser Preenchido” ;          
flag=1;        
} 

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.

Listagem 3: Código de validação do campo Senha

if (String.valueOf(jPasswordFieldSenha.getPassword()).length()<=8){ 
validacao=validacao+ "\n*Campo de Senha com no mínimo 8 caracteres";
flag=1;
}
 

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.

Listagem 4: Código de validação de campo jcombobox tipo de cadastro

if (jComboboxTipoCadastro.getSelectedIndex()==0){
 validacao=validacao+ "\n* Selecione o Tipo de Cadastro";
flag=1;
}
 

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.

Observação: Este código deve ser o último código dos ifs

Listagem 5: Código de ação da bandeira(flag)

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

} 

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.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?