Menu, Duvidas com GC e Swing

Certo sei que no Java nao da pra gente fazer como no C++ e “apagar” um objeto da memoria …
Entao eu tenho um programa que comeca num Menu, e entao se voce escolhe determinada opcção ele cria um Objeto que contem toda a GUI e a desenha na janela e cria tambem objetos auxiliares para transacoes no banco de dados e etc…
(OBS: J2SE, usando o Swing)
Tenho 2 perguntas:
1-Depois que o usuario usa esse menu e decide trocar para outra opcção, como faço pra “deletar” entao o objeto da memoria (que estava sendo usado)?..Pq o objeto atual tem q sumir da tela… fazendo sua referencia ser nula para o disponibilizar para o GC? mas como vou saber se o GC vai mesmo deleta-lo??

2-Quando ele escolhe alguma opcção que necessita de coisas como conectar-se a um banco de dados o que posso usar do Swing para fazer um aviso de Loading ou algo assim? sendo que quando a operação termine o aviso deve sumir…

Obrigado pessoal.

nenhuma ideia ninguem?

certo a pergunta 2 eu ja achei a resposta JProgressBar
http://java.sun.com/docs/books/tutorial/uiswing/examples/components/ProgressBarDemoProject/src/components/ProgressBarDemo.java

mas a pergunta 1 nao tenho ideia

Bom.

Você não tem como controlar o GC. Até tem como você sugerir que ele execute, com System.gc(), mas nada garante que ele vá realmente rodar naquele momento e muito menos que ele va limpar determinada posição de memória.

Agora, porque a preocupação em deletar o objeto da memória? Se vc não está apontando para ele, não corre o risco de recuperá-lo por engano, e se vc precisar da memória, é quase certo que o GC vai jogar ele fora se vc realmente não deixou ninguém apontando para ele. Só não te falo que é certeza porque precisaria de algum documento pra te comprovar rs.

Qualquer coisa grita ai.

Olá rapaz,

Não se preocupe com os objetos não apontados, o GC cuida dessa parte por vc sem precisar aciona-lo, caso vc queira que o formulário suma, vc pode usar o método dispose(), exemplo: form1.dispose(), ele vai desaparecer e não vai consumir memoria, e vc poderá fazer sussegado sua conexão com o banco de dados e outras coisas, blz, espero ter ajudado …

Generosamente,

Frid

paulohrl e frid obrigado pelas dicas…esse metodo dispose eu posso usar na minha classe? pensei em fazer o seguinte,
form.setVisible(false);
form = null;

mas posso usar apenas o dispose? meu form tem q extender algo pra usar o metodo?

obrigado

Olá Stealthk,

Para sua alegria, vc não precisa extender nada, basta apenas colocar o seu formulario.dispose() e pronto, e para fazer ele aparecer setVisible(true), blz, abraço …

Generosamente,

Frid

certo ok
significa que dispose é um método da classe Object??
e tambem nao presciso apontar a referencia para null dps de usar dispose ou presciso?
obrigado mais uma vez

Grande garoto, pode esquecer o null, não precisa colocar ele, o dispose evm da grande hierarquia, rsrsrs …

Generosamente

Frid