Gostaria de expandir um caminho de uma JTree como abaixo:
Home
+Abacaxi
+20_05_2012
+Amostra1
foto1
+Banana
+Manga
O caminho a ser expandido então seria, Home\Abacaxi\20_05_2012. Então tentei
DefaultMutableTreeNode home = new DefaultMutableTreeNode("Home");
DefaultMutableTreeNode ab = new DefaultMutableTreeNode("Abacaxi");
DefaultMutableTreeNode data = new DefaultMutableTreeNode("20_05_2012");
DefaultMutableTreeNode amostra = new DefaultMutableTreeNode("Amostra1");
home.add(ab);
ab.add(data);
data.add(amostra);
TreePath treePath = new TreePath(new Object[]{home, ab, data});
jTree1.expandPath( treePath);
E não acontece nada, pois tenho um ouvinte para o evento de expansão, esta expansão acima não funcionou.
Alguém já tentou algo assim ou propõe alguma solução?
jTree1 = new javax.swing.JTree();
treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("Home");
treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Abacaxi");
treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("20_05_2012");
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra1");
treeNode3.add(treeNode4);
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra2");
treeNode3.add(treeNode4);
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);
treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Banana");
treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("20_05_2012");
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra1");
treeNode3.add(treeNode4);
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra2");
treeNode3.add(treeNode4);
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);
treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Manga");
treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("20_05_2012");
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra1");
treeNode3.add(treeNode4);
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra2");
treeNode3.add(treeNode4);
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);
jTree1.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
jTree1.addTreeWillExpandListener(new javax.swing.event.TreeWillExpandListener() {
public void treeWillCollapse(javax.swing.event.TreeExpansionEvent evt)throws javax.swing.tree.ExpandVetoException {
}
public void treeWillExpand(javax.swing.event.TreeExpansionEvent evt)throws javax.swing.tree.ExpandVetoException {
jTree1TreeWillExpand(evt);
}
});
jTree1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
jTree1ValueChanged(evt);
}
});
jScrollPane1.setViewportView(jTree1);
KamikazeBr
Henrique.tenorio:
KamikazeBr:
Estranho, aqui funcionou...
Pergunta: Como esta inicializando seu jTree1?
Código:
jTree1 = new javax.swing.JTree();
treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("Home");
treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Abacaxi");
treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("20_05_2012");
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra1");
treeNode3.add(treeNode4);
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra2");
treeNode3.add(treeNode4);
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);
treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Banana");
treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("20_05_2012");
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra1");
treeNode3.add(treeNode4);
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra2");
treeNode3.add(treeNode4);
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);
treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Manga");
treeNode3 = new javax.swing.tree.DefaultMutableTreeNode("20_05_2012");
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra1");
treeNode3.add(treeNode4);
treeNode4 = new javax.swing.tree.DefaultMutableTreeNode("Amostra2");
treeNode3.add(treeNode4);
treeNode2.add(treeNode3);
treeNode1.add(treeNode2);
jTree1.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
jTree1.addTreeWillExpandListener(new javax.swing.event.TreeWillExpandListener() {
public void treeWillCollapse(javax.swing.event.TreeExpansionEvent evt)throws javax.swing.tree.ExpandVetoException {
}
public void treeWillExpand(javax.swing.event.TreeExpansionEvent evt)throws javax.swing.tree.ExpandVetoException {
jTree1TreeWillExpand(evt);
}
});
jTree1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
jTree1ValueChanged(evt);
}
});
jScrollPane1.setViewportView(jTree1);
No meu caso eu não usei o setModel
e sim o construtor e nao coloquei dentro de um novo DefaultModel somente direto o treeNode1.
Não tenho uma IDE aqui e não posso checar os metodos e seus tipos pra lhe dizer exatamente o que acontece, mas fica a dica.
Henrique.tenorio
No meu caso eu não usei o setModel
e sim o construtor e nao coloquei dentro de um novo DefaultModel somente direto o treeNode1.
Não tenho uma IDE aqui e não posso checar os metodos e seus tipos pra lhe dizer exatamente o que acontece, mas fica a dica.
Coloca o código que você fez para mim poder analisar. Estranho isto não estar funcionando.
KamikazeBr
Henrique.tenorio:
No meu caso eu não usei o setModel
e sim o construtor e nao coloquei dentro de um novo DefaultModel somente direto o treeNode1.
Não tenho uma IDE aqui e não posso checar os metodos e seus tipos pra lhe dizer exatamente o que acontece, mas fica a dica.
Coloca o código que você fez para mim poder analisar. Estranho isto não estar funcionando.
Como eu disse, estou sem IDE, e sem o codigo aqui. mas passei o treeNode1 no construtor do JTree().