Galera, boa noite, estou reabrindo um tópico, pois estou tendo quase o mesmo problema que o cara estava tendo. Eu preciso fechar um JFrame, mas acredito que estou passando os comandos certos e não está funcionando. Este método abaixo, funcionava muito bem quando estava na classe da tela. Porém, por questões de manutenção e clean code, eu quis mudar todos os métodos referentes a menu para uma classe especifica. Desde então, sempre que estou em uma tela e tento mudar de tela usando alguma opção do menu a outra tela é aberta, porém a tela anterior continua aberta em segundo plano. Alguém consegue me ajudar?
private JMenuItem getJMenuItemEmail() {
if (jMenuItemEmail == null) {
jMenuItemEmail = new JMenuItem();
jMenuItemEmail.setText("Enviar E-MAIL");
jMenuItemEmail.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
EmailVIEW email = new EmailVIEW();
// Alterando a forma de fechamento da tela.
email.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
EmailController.getInstance().abrirTela();
//TODO
// Fechando a tela quando chamar algum menu.
dispose();
}
});
}
return jMenuItemEmail;
}