Como faço para criar dinâmicamente uma JTree partindo de uma já existente? Tipo, meu problema é quando insiro uma folha de um diretório e logo depois insiro outra folha desse mesmo diretório. Na JTree que está sendo formada aparece só a primeira folha que enviei. Isso já está me dando uma dor de cabeça… 
Swing: JTree
6 Respostas
Vc atualizou o TreePath ?
Depende do código que vc está usando!!!
Se estiver usando um DefaultTreeModel pode usar o seguinte:
((DefaultTreeModel) getModel()).insertNodeInto(node, nodeAtual, nodeAtual.getChildCount());
Assim, ele já atualiza tudo que vc precisa…
Fallow
Galera,
Estou basicamente usando a classe DefaultMutableTreeNode (achei mais prático trabalhar com ela). O que acontece é o seguinte: criei um método chamado insertLeaf que recebe como parâmetro o root o pai do elemento selecionado na primeira JTree e o filho selecionado. Então o que faço: verifico se é a primeira vez que o usuário irá inserir uma folha na outra árvore. Se for ele inserirá a folha e seu diretório correspondente. Por exemplo: dentro do diretório Livros de uma JTree eu tenho as folhas Java, C# e C. Então eu seleciono a folha Java e envio para a outra JTree. Logo na outra JTree teremos o diretório Livros apenas com a folha Java. O problema é que quando eu seleciono, por exemplo a folha C# (mesmo diretório) e mando para a outra árvore, ela não aparece. Só que quando eu debuguei esse código pelo eclipse ele mostrava que essa última folha estava lá, mas ela não aparecia. Alguém pode me dar uma luz??? Desde já agradeço.
Tenta isto se der certo me avisa !!!!
DefaultMutableTreeNode newNodo =(DefaultMutableTreeNode)
tree1.getLastSelectedPathComponent();
DefaultMutableTreeNode NovoParent =(DefaultMutableTreeNode)
tree2.getLastSelectedPathComponent();
((DefaultTreeModel)tree2.getModel()).insertNodeInto(novoNodo,NovoParent,NovoParent.getChildCount());
TreePath treePath = new TreePath(novoNodo.getPath());
tree2.scrollPathToVisible(treePath);
tree2.setSelectionPath(treePath);
Se não der certo manda essa parte do teu código que eu dou uma olhada !!!
Ei Edinei,
Tentei usar aquele fragmento de codigo que vc me passou, mas nao deu certo, mas mesmo assim, felizmente consegui solucionar meu problema com relação a inserção em uma nova JTree. Valeu pela sua ajuda e pela galera que ajudou!!!
T+!
Ps. Creio que ainda discutiremos um pouco sobre JTree, afinal esse meu trabalho ainda não acabou!!!
Bah, eu tava trabalhando com um bem parecido, inserção em outra arvore, deixando o usuario arrastar um nodo, etc !!!
Qualquer coisa estamos ai !!!