Boa tarde, estou com um problema em uma parte da minha aplicação. é um array list , pecorro ele usando um for, para encontrar um usuário que está na lista, comparando nome e senha, mas quando passa para o 2° elemento ou outro em diante, o aparece que a senha está errada, vou postar o codigo que fica mais facil de entender.
StringnomeProfessor=jTextField1.getText();StringsenhaProfessor=newString(jPasswordField1.getPassword());for(inti=0;i<telaAnterior.getTelaAnterior().getDiretor().getLista_professor().size();i++){if(nomeProfessor.equalsIgnoreCase(telaAnterior.getTelaAnterior().getDiretor().getLista_professor().get(i).getNome())&&senhaProfessor.equals(telaAnterior.getTelaAnterior().getDiretor().getLista_professor().get(i).getSenha())){serieProfessor=telaAnterior.getTelaAnterior().getDiretor().getLista_professor().get(i).getTurma();JOptionPane.showMessageDialog(null," LOGIN REALIZADO COM SUCESSO ");telaAnterior.getMenuProfessor().setVisible(true);this.setVisible(false);// telaAnterior.setVisible(false);}else{// corrigir isso, quando da um loop da a msg errada, tentar otimizar o for JOptionPane.showMessageDialog(null,"senha errada, tente novamente ");this.setEnabled(true);}}
apenas 1 dos resultados do arrayList vai bater o usuario e senha correto?
então acredito que o loop esteja certo, voce precisa apenas dar um break na repeticao dentro do if que está ok para parar o loop caso encontre o resultado esperado
seria isso?
abraço
S
Sg5001
Eu coloquei o break, dentro do if, mas ainda aparece a msg JOptionPane.showMessageDialog(null, "senha errada, tente novamente "); , se o professor tiver indice 0 passar normal, mas se o indice for maior que 0, o for recomeça e mostra a msg de senha errada…
pmlm
Então não podes mandar a mensagem sempre que o que encontras não é o que queres mas apenas no fim, senão encontraste o que querias.
ddenis3526
Não gosto de criticar nenhum código, mas como gosto de trabalhar muito com MVC :x Segue o meu ponto de vista.
E fica mais fácil de entender o código, uma vez eu apreendi que quando vc programa e o seu código fica cada vez mais parecido como um livro é que o código realmente está ficando bom ^^
S
Sg5001
Mas como ficaria se o usuário digitasse a senha errada?
Então não podes mandar a mensagem sempre que o que encontras não é o que queres mas apenas no fim, senão encontraste o que querias.
ddenis3526
Sg5001:
Mas como ficaria se o usuário digitasse a senha errada?
Então não podes mandar a mensagem sempre que o que encontras não é o que queres mas apenas no fim, senão encontraste o que querias.
Olha o código que mandei como resposta. Acho que tira a suas duvidas.
S
Sg5001
Cara tem um problema com o codigo que você mandou, ele só verifica o primeiro professor, se cadastrar outro ele não verifica e mostra que a senha está errada…
ddenis3526
Sg5001:
Cara tem um problema com o codigo que você mandou, ele só verifica o primeiro professor, se cadastrar outro ele não verifica e mostra que a senha está errada...
private boolean verificarLogin(String nomeProfessor,String senhaProfessor ){
for (Professor professor : telaAnterior.getTelaAnterior().getDiretor().getLista_professor()) {
if (professor.getNome() && senhaProfessor.equals(professor.getSenha())) {
serieProfessor = professor.getTurma();
telaAnterior.getMenuProfessor().setVisible(true);
this.setVisible(false);
return true;
}
}
}
private void validarLogin(){
if(verificarLogin(jTextField1.getText(), jPasswordField1.getPassword())){
JOptionPane.showMessageDialog(null, " Login Realizado com Sucesso! " );
}else{
JOptionPane.showMessageDialog(null, "Usuário ou Senha Inválida! ");
this.setEnabled(true);
}
}
ddenis3526
n tinha reparado x.x" só tinha ajustado.
S
Sg5001
como faz?
ddenis3526
Sg5001:
como faz? :)
private boolean verificarLogin(String nomeProfessor,String senhaProfessor ){
for (Professor professor : telaAnterior.getTelaAnterior().getDiretor().getLista_professor()) {
if (professor.getNome() && senhaProfessor.equals(professor.getSenha())) {
serieProfessor = professor.getTurma();
telaAnterior.getMenuProfessor().setVisible(true);
this.setVisible(false);
return true;
}
}
}
private void validarLogin(){
if(verificarLogin(jTextField1.getText(), jPasswordField1.getPassword())){
JOptionPane.showMessageDialog(null, " Login Realizado com Sucesso! " );
}else{
JOptionPane.showMessageDialog(null, "Usuário ou Senha Inválida! ");
this.setEnabled(true);
}
}