Condição de Acesso

Boa noite Galera…

Seguinte: Estou aprendendo java…e estou desenvolvendo um sistema onde ele terá uma condição de acesso, tipo: Admin, Professor e Aluno.

Caso o acesso seja feito por um Admin, ele e levado para a tela Admin
Caso o acesso seja feito por um Professor, ele e levado para a tela Professor
Caso o acesso seja feito por um Aluno, ele e levado para a tela Aluno

Então comecei a fazer as condições, fiz a primeira…deu certo. Coloque o if e else tudo certo.
Então fui fazer a segunda e a terceira, levando cada usuário para sua respectiva Tela. so que quando coloco a mensagem de erro no fim das tres condiçoes, sempre que acesso a tela do admin ele primeiro mostra a mensagem de erro pra depois ele levar a tela correspondente…to errando no que?

O código é este:

if(txtUsuario.getText().equals("admin")&&jPasswordFieldSenha.getText().equals("1234")&&jComboBoxPerfil.getSelectedItem().equals("Admin")){
   TelaPrincipal tela = new TelaPrincipal();
   tela.setVisible(true);
   dispose();
                 
   }
   if(txtUsuario.getText().equals("admin")&&jPasswordFieldSenha.getText().equals("12345")&&jComboBoxPerfil.getSelectedItem().equals("Professor")){
   TelaProfessor professor = new TelaProfessor();
   professor.setVisible(true);
   dispose();
                         
   }
   if(txtUsuario.getText().equals("admin")&&jPasswordFieldSenha.getText().equals("123456")&&jComboBoxPerfil.getSelectedItem().equals("Aluno")){
   TelaAluno aluno = new TelaAluno();
   aluno.setVisible(true);
   dispose();
   }else{
      JOptionPane.showMessageDialog(rootPane,"Usuário, Perfil ou Senha estão Incorretos!");     
                      
     }
}  

to errando aonde?

O getText do JPasswordField não retorna a senha.

https://docs.oracle.com/javase/tutorial/uiswing/components/passwordfield.html


Também faltou os else nos outros ifs

e ai diego…mas nao e so no final do codigo que se coloca o else a condição de erro?
Então tem que inserir nos tres codigos?

e esse de não retornar a senha nao entendi…oq ue falta exatamente…pode me passar o certo?

e outra coisa do que deu errado nos outros dois codigos, sendo que no primeiro deu certo?

valeu pela ajuda

Faça como o diego12 falou, use o else if

Você está fazendo tres if desnecessarios.

Primeiro ele verifica o primeiro if. Login e senha validos? OK, entre na pagina tal
Depois faz uma nova verificação. Login e senha validos? Não
Vem ainda em outro if. Login e senha validos? Não. O que tem nesse ultimo if? um else também, então ele vai mostrar a mensagem.

Agora caso, você tente entrar como Aluno, o else, ou a mensagem não será exibida.

Usando else if, você só faz uma verificação

if () {
Admin
} else if () {
Professor
} else if() {
Aluno
} else {
Esse else aqui é um senão de todos os acima, e não apenas do ultimo
}

Entendi Jonas…Valeu cara…vou tentar aqui…ai posto o resultado…

Jonas…FUNCIONOUUU…kkkk…brigadao cara…realmente nao tinha pensando no else if…na verdade nem passou pela minha cabeça…achei que cada um podir ser feito do jeito daquele codigo la…valeu mesmo mano…precisando e so falar…

boa noite…