Bonjour !

J'ai un petit problème pour un programme en java: il y a un arbre JTree dont les noeuds contiennent un UserObject redéfini avec deux variables: "nom" et "path".
Je voudrais pouvoir récupérer la variable "path" de tous les noeuds séléctionnés...

Voici mon 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
 
    private javax.swing.JTree treeClient;
 
    public String[] getTreeSelection() {
        int i = 0;
        DefaultMutableTreeNode noeud;
        String[] ret = new String[(treeClient.getSelectionPaths()).length];
       // tant qu'il reste des noeuds séléctionnés
        while(!treeClient.isSelectionEmpty()) {
            // on récupère le dernier (?) noeud séléctionné
            noeud = (DefaultMutableTreeNode)treeClient.getLastSelectedPathComponent();
            // on accède à la variable "path" du UserObject de ce noeud
            ret[i] = ((UserObject)noeud.getUserObject()).path;
            // et on déséléctionne ce noeud pour passer au prochain
            treeClient.removeSelectionRow(treeClient.getMaxSelectionRow());
            i++;
        }
        return ret;
    }
A l'éxécution, il semble que certains "path" ne sont pas renvoyés, et d'autres sont en double. Je suppose que c'est mon 'removeSelection()' qui n'est pas adapté... Avez-vous une idée ?

Merci