Bonjour à tous,

Tous d'abord le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Object obj = this.dynamicNode.getUserObject();
treeModel2.setRoot(dynamicNode.getPath()[3]);
tree.setModel(treeModel2);
tree.setRootVisible(true);
 
DefaultMutableTreeNode rootTree = (DefaultMutableTreeNode) tree.getModel().getRoot();
Enumeration e = rootTree.preorderEnumeration();
 
TreeNode[] paths = null;
 
while (e.hasMoreElements()) {
        DynamicNmsTreeNode tt = (DynamicNmsTreeNode) e.nextElement();
 
        if (tt.getUserObject().equals(obj)) {
            tree.expandPath(new TreePath(tt.getPath()));
            break;
        }
    }
}
Ce code permet théoriquement de récupérer le path d'un objet et d'eefectuer une fois l'objet trouvé l'expand du tree du noeud sélectionné.
Le path est bien récupérer mais lorsque l'on exécute expandpath le tree ne se déploie pas. Le problème vient du fait que l'on modifie le noeud root du path.
Si la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
treeModel2.setRoot(dynamicNode.getPath()[3]);
est commenté l'expand path fonctionne mais il me fait voir les trois premiers noeuds du tree alors que je désire ne pas les voir.
Comment puis je faire pour ne pas voir les trois premier noeuds de mon tree.