private void botaoEntrarActionPerformed(java.awt.event.ActionEvent evt) {
String auxAdministrador = campoAdministrador.getText();
if (campoEmpresa.getText().equals("“IFTM Patrocínio") && campoSenha.getPassword().equals("xpto123")
|| campoAdministrador.getText().equals("<<administradorXXX>>")) {
FormularioCadastro formularioCadastro = new FormularioCadastro();
formularioCadastro.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
formularioCadastro.setVisible(true);
JOptionPane.showMessageDialog(null, "\nLogin efetuado com sucesso! Bem Vindo!" + "\nAdministrador:" + auxAdministrador);
} else {
JOptionPane.showMessageDialog(null, "Erro ao efetuar Login! Tente novamente.");
}
Não tem nenhuma chamada ao dispose()
no seu código.
Você pode usar o dispose()
ou o setVisible(false)
.
Exemplo:
private void botaoEntrarActionPerformed(java.awt.event.ActionEvent evt) {
String auxAdministrador = campoAdministrador.getText();
if (campoEmpresa.getText().equals("“IFTM Patrocínio") && campoSenha.getPassword().equals("xpto123")
|| campoAdministrador.getText().equals("<<administradorXXX>>")) {
FormularioCadastro formularioCadastro = new FormularioCadastro();
formularioCadastro.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setVisible(false); // fecha esta janela
formularioCadastro.setVisible(true); // abre a outra janela
// precisa realmente mostrar mensagem que o login deu certo?
// já não é óbvio que o login deu certo pelo simples fato de abrir a tela de cadastro?
JOptionPane.showMessageDialog(null, "\nLogin efetuado com sucesso! Bem Vindo!" + "\nAdministrador:" + auxAdministrador);
} else {
JOptionPane.showMessageDialog(null, "Erro ao efetuar Login! Tente novamente.");
}
}
não entendi o setVisible(false) sozinho.
Em que classe está declarado esse método botaoEntrarActionPerformed
?
Pergunto pois é no objeto dessa própria classe, ou seja no this
dela, que o setVisible
está sendo chamado.
Talvez seja interessante você estudar algum material sobre programação orientada a objetos, tenho a impressão de que você está pulando etapas no seu aprendizado, isso não é legal.
Ele tá na classe Login, eu não aprendi muito bem mesmo não POO. Fiz sem instanciar agora, só falta fechar a janela.
private void botaoEntrarActionPerformed(java.awt.event.ActionEvent evt) {
String auxAdministrador = campoAdministrador.getText();
if (campoEmpresa.getText().equals("“IFTM Patrocínio") && campoSenha.getPassword().equals("xpto123")
|| campoAdministrador.getText().equals("<<administradorXXX>>")) {
JOptionPane.showMessageDialog(null, "\nLogin efetuado com sucesso! Bem Vindo!" + "\nAdministrador:" + auxAdministrador);
new FormularioCadastro().setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "Erro ao efetuar Login! Tente novamente.");
}
}
E a classe Login
estende o quê? Provavelmente é JDialog
ou JFrame
.
Ou seja, o Login
é um JDialog
(ou JFrame
, depende do que tu estendeu).
Então é interessante parar de dar muro em ponta de faca e recaptular.
Fez sem instanciar o quê? Não entendi.
Pois é, você ainda não pôs o setVisible(false)
, então não vai fechar mesmo.