Como faço para descarregar uma Toolbar do Frame? ou então retirar cada um dos botões que a compõe??
Uma JToolBar herda de JComponent, que herda de Container, os métodos getComponents(), getComponentCount() e os métodos remove(java.awt.Component) e remove(int).
Respondi recentemente uma dúvida semelhante postada aqui no fórum, que provavelmente responderá sua dúvida.
Espero ter ajudado.
Certo, já ajudou bastante, mas como eu faço para retirar o objeto de lá??? eu poderia executar um setVisible(false), ou setEnabled(false), mas ele continuaria lá. Teria alguma forma de fazer com que ele suma realmente, e sua posição de memória seja liberada para o coletor?
Rafael, vc está no fórum errado. Por isso ninguém tá respondendo sua pergunta.
Ou melhor, está. O Dango já explicou como vc remove o objeto: chamado o método remove().
Pra deixar um objeto livre para ser coletado, vc precisa sumir com todas as referências para ele, isto é, todo mundo que enxerga o objeto tem que apontar para alguma coisa. Por exemplo:
toolbar = new JToolbar();
toolbar.add(newButton);
toolbar.add(openButton);
toolPanel.add(toolbar);
Até aqui, vc tem 2 referências explícitas para o seu toolbar. Vc pode forçar o GC a coletar o seu toolbar assim:
toolPanel.remove(toolbar);
toolbar = null;
System.gc();
Pode ser que os botões que vc adicionou ao toolbar também guardem referências a ele (na verdade, o toolbar é o parentComponent dos botões). Por isso, é bom remover todo mundo de dentro do toolbar:
toolbar.removeAll();
Bom, é isso aí. Se vc tá fuçando no GC, o ideal é vc não usar o swing. Tem muitos listeners e referências ocultas. Brinca com HashMap e WeakHashMap… : )
Tudo de bom!!