Galera boa noite,
Na tela de login estou tentando fazer uma validação mas esta dando erros.
o que eu fiz foi o seguinte. caso o usuario esteja com status ativo ele loga se tiver inativo não loga.
porém eu estou tentando fazer algo a mais que é 3 tentativas de logar caso não consiga bloqueia o usuário que no caso fica inativo. meu código esta assim
public void AcessarConta(){
ControlarDados dados = new ControlarDados();
try {
// Envia os dados para o método Logar na class CadastroDAO
AcessoDAO acesso = new AcessoDAO();
dados.setLogin(txtLogin.getText());
dados.setSenha(txtSenha.getText());
// Verifica se um dos campos está vazios
if(txtLogin.getText().isEmpty() || txtSenha.getText().isEmpty()){
JOptionPane.showMessageDialog(this, "Por Favor, Os Campos Não Podem Ser Nulos!", "AVISO", JOptionPane.CANCEL_OPTION);
txtLogin.requestFocus();
}
// Caso toda operação estiver correta entra no modo avaliação
else {
// Se login senha no banco ele entra em outra validação.
// Se no banco o status estiver 1 ou seja ativo ele acessa a tela principal.
if(acesso.Logar(dados)){
if(dados.getSituacaoProfessor().equals("1")){
// data do sistema.
Date hoje = new Date();
SimpleDateFormat data;
data = new SimpleDateFormat("dd/MM/yyyy");
// abertura da tela principal.
new TelaPrincipal().setVisible(true);
// Apresentação do usuário e data do sistema.
TelaPrincipal.Receber("OLÁ " + dados.getNomeProfessor(), "Data: " + data.format(hoje));
dispose();
}
}
// caso o usuário erre a senha 3 vezes o status de acesso é desativado
else if(dados.getContador().equals("0")){
InetAddress addres = InetAddress.getLocalHost();
dados.setSituacaoProfessor("0");
// Indentificação da maquina
dados.setHostName(addres.getHostName());
// ip do cliente
dados.setIp(addres.getHostAddress());
acesso.Bloquear(dados);
JOptionPane.showMessageDialog(this, "Usuário " + dados.getLogin() + " Bloqueado\nEntre em contato com o administrador do sistema"
, "AVISO" , JOptionPane.ERROR_MESSAGE);
txtLogin.setEditable(false);
txtSenha.setEditable(false);
}
// Se Caso ao contrario apresenta a mensagem de erro.
else{
JOptionPane.showMessageDialog(this, "Login ou Senha Invalida, Você Tem Mais " + quantidade + " Tentativas" ,
"AVISO" , JOptionPane.ERROR_MESSAGE);
quantidade--;
dados.setContador(Integer.toString(quantidade));
acesso.contagem(dados);
txtLogin.setText(null);
txtSenha.setText(null);
txtLogin.requestFocus();
}
}
} catch (Exception e) {
/*
*"Erro Ao Logar no Sitema\nPor Favor Entre Em Contado Com"
+ " o Administrador do Sistema"
*/
JOptionPane.showMessageDialog(null, e , "AVISO", JOptionPane.INFORMATION_MESSAGE);
}
o erro que esta dando é java.lang.NullPointerException. tem muito if e else.
Porém outro erro que estava dando é, se o usuário digitar o e-mail dele exemplo, [email removido] 2 vezes e depois digitar [email removido] o sistema bloqueia o rafael. queria que fizesse contagem de um usuario só alguém me ajuda???