Dispose() num JDialog retira ele da memória ou não?

3 respostas
L

Pessoal, estou com a seguinte situação:

Criei um formulário principal (JFrame) que abre um formulário filho (JDialog). Coloquei nesse formulário filho um botão Fechar que chama um método dispose(). Funcionou belezinha.

O problema é: quando eu executo apenas o arquivo desse formulário filho usando o NetBeans (shift+F6) e clico nesse botão Fechar aquela indicação que fica embaixo a direita no NetBeans permanece indicando que o meu formulário contina rodando (run-single running…).

Quando eu o chamar da janela principal e clicar no botão Fechar o formulário filho será realmente fechado e sua memória liberada ou ele permanecerá assim running?

3 Respostas

sjoaquim

O dispose() não necessariamente tira da memória. Quem tem esse poder é somente o garbage collector da máquina virtual.

Talvez o que você queira é o seguinte:

<formulario>.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);

Mas você vai executar esse formulário sempre junto com o formulário principal ou não? Senão, o ideal é você criar uma outra classe que controle o fluxo entre os formulários.

L

Mas eh um JDialog, essa propriedade serve para ele?

Sim, ele sempre é executado sobre o formulario principal!

sjoaquim

Sim, o JDialog também implementa esse método.

Mas se você vai utilizar ela junto com a janela principal, não tem porque utilizar EXIT_ON_CLOSE.

Criado 26 de agosto de 2008
Ultima resposta 26 de ago. de 2008
Respostas 3
Participantes 2