RicardoCobain:
Bem sobre o TreeModel eu estou gerando apartir do Default mesmo, pq ainda n descobri como se faz com o Abstract, ou melhor TreeModel.
Não consegui ver as vantagens, só iria ter mais trabalho :(
Bom, tire isso da cabeça. Você vai ter as seguintes vantagens:
1. MENOS trabalho;
2. Mais controle sobre a estrutura da sua JTree;
3. Código consideravelmente mais claro;
4. Separação da lógica de negócios da sua view.
Eu também já postei aqui no GUJ esse Model que facilita um bocado as coisas.
RicardoCobain:
você pode ainda procurar estruturar o seu TreeModel para fazer lazy loading dos grupos
Xiiiiii... Não sei o que é isso... :cry:
Lazy loading é o seguinte. Ao invés da classe grupo processar a lista de máquinas num construtor, faça o processamento ocorrer apenas quando a lista é solicitada. Basicamente é algo do tipo:
public class GrupoDeMaquinas {
public Array<Maquinas> maquinas;
// ... aqui iriam outras propriedades
public GrupoDeMaquinas(String nome) {
this.nome = nome;
this.maquinas = null;
}
public List<Maquinas> getMaquinas() {
if (maquinas == null) // a lista nunca foi solicitada?
this.maquinas = recuperaLista(); //Processa para obter a lista
return lista;
}
//... resto da classe aqui
}
Com isso, quando a sua árvore for montada a primeira vez, apenas com nós "collapsed", ela não terá carregado nenhuma máquina na lista e, portanto, ocupará pouca memória. Cada nó expandido vai carregando as máquinas da lista e aumentando a quantidade de memória exigida pelo JTree. É uma técnica muito comum. Note que também pode haver uma pequena demora para abrir o nó a primeira vez.
RicardoCobain:
Eu ainda tenho varias duvidas sobre a questão de como o Java gerencia os Objetos, pq no pascal (que eu estava estudamdo antes) agente era quem tinha que gerenciar... :?
O java cria os objetos no new e deleta os objetos em algum momento após eles não terem nenhuma referência. Não é necessário deletar o objeto manualmente em nenhum ponto do código, o que por sinal é ótimo. O java ainda é capaz de identificar "ilhas", fazendo a exclusão do mesmo jeito (objeto A que referencia B, B que referencia A, mas ninguém referencia A ou B)
Você veio do pascal ou do Delphi?