Dispose() não fecha janela!

2 respostas
caiofabioa

Olá amigos, a princípio eu pensei que isso seria simples porém está me deixando nervoso.

A principio minha classe main chama a seguinte JDialog:

GUI.GUI_user_login janelaLogin = new GUI_user_login(null, true);
janelaLogin.setVisible(true);

ok, ele abre o jDialog a janela do login, se eu fechar ela no inicio, ele fecha normal! Tanto pelo botão da janela como o botão dispose() que eu criei, ao fazer o login ele chama um JFRAME assim:

GUI.GUI_Principal janelaPrincipal = new GUI.GUI_Principal();
this.setVisible(false);
janelaPrincipal.setExtendedState(JFrame.MAXIMIZED_BOTH);
janelaPrincipal.setVisible(true);

Ok, abriu minha janela principal, se eu fechar la pelo x da janela ele fecha normal, quando eu chamo um botão para trocar de usuário e abrir o tela de login novamente que começa o meu problema, o código é esse:

GUI.GUI_user_login janelaLogin = new GUI.GUI_user_login(this, true);
        this.dispose();
        janelaLogin.setVisible(true);

agora quando volta pra janela de login nem no x da janela e nem chamando a função dispose() encerra o processo, ele fecha a janela mas o processo continua em execução. Alguém tem alguma idéia?

2 Respostas

darklordkamui

GUI.GUI_user_login janelaLogin = new GUI.GUI_user_login(this, true); this.dispose(); janelaLogin.setVisible(true);

olha o que ele esta fazendo…

vc instanciou o janelaLogin usando a instancia atual via construtor ok?

ai logo depois vc mandou destroir o objeto que usou como base… e em seguida mandou ele ficar visivel… logo… o JFrame vai travar pq ele perdeu a referencia que vc passou a ele…

entao o a fonte do seu problema é esse this.dispose(); no lugar errado…

caiofabioa

Poxa não reparei isso, kkk apelei pro System.exit(0); mas ouvi dizer que não é bom usar isso (não sei porque, foi uma pesquisa meio rápida no guj) mas vou tentar corrigir isso com seVisible() Obrigado!

Criado 11 de fevereiro de 2013
Ultima resposta 12 de fev. de 2013
Respostas 2
Participantes 2