IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Récupération des nœuds d’un JTree


Sujet :

Composants Java

  1. #1
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par défaut Récupération des nœuds d’un JTree
    Bonjour,
    J'aimerais savoir comment puis-je récupérer tout les descendants(fils- fils...) d'un nœud sélectionne. J'ai réussi seulement a récupérer les fils.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TreePath tp = tree.getSelectionPath();
    DefaultMutableTreeNode no = (DefaultMutableTreeNode)tp.getLastPathComponent());
         for (int i=0; i<no.getChildCount(); i++)
         {
              System.out.println(no.getChildAt(i).toString());
          }
    Merci de m'avoir aider

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Je n'ai pas souvent utilisé des arbres mais tu peux utiliser la récursivité.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void affichageFils ( noeud père ){
    boucle{//Parcours tous les fils
    System.out.println(unFils);
    affichageFils(unFils);// Va afficher le fils du fils. Qui lui même affichera le fils du fils ...
    }
    }
    Bon le code ce n'est pas vraiment du java mais c'est compréhensible

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 37
    Par défaut
    Je t'ai écris un bout de code, même si je pense que tu as déjà dû trouver la réponse...c'est plus performant que de faire par récursivité donc je poste ce code si quelqu'un passe par là...:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    package testnode;
     
    import java.util.Enumeration;
    import javax.swing.tree.DefaultMutableTreeNode;
     
    /**
     * @author Nico
     */
    public class Main {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            //Création d'un arbre de test
            DefaultMutableTreeNode racine = new DefaultMutableTreeNode("Racine de l'arbre");
            DefaultMutableTreeNode noeud1 = new DefaultMutableTreeNode("Noeud 1");
            DefaultMutableTreeNode noeud11 = new DefaultMutableTreeNode("Noeud 11");
            DefaultMutableTreeNode noeud12 = new DefaultMutableTreeNode("Noeud 12");
            DefaultMutableTreeNode noeud2 = new DefaultMutableTreeNode("Noeud 2");
            DefaultMutableTreeNode noeud21 = new DefaultMutableTreeNode("Noeud 21");
            DefaultMutableTreeNode noeud22 = new DefaultMutableTreeNode("Noeud 22");
            DefaultMutableTreeNode noeud23 = new DefaultMutableTreeNode("Noeud 23");
            DefaultMutableTreeNode noeud231 = new DefaultMutableTreeNode("Noeud 231");
            DefaultMutableTreeNode noeud232 = new DefaultMutableTreeNode("Noeud 232");
            racine.add(noeud1);
            racine.add(noeud2);
            noeud1.add(noeud11);
            noeud1.add(noeud12);
            noeud2.add(noeud21);
            noeud2.add(noeud22);
            noeud2.add(noeud23);
            noeud23.add(noeud231);
            noeud23.add(noeud232);
     
            //Affiche tous les enfants-petits enfants... depuis la racine
            System.out.println("Enfants de racine ");
            Enumeration e = racine.preorderEnumeration();
            while (e.hasMoreElements()) {
                System.out.println(e.nextElement() + " ");
            }
     
            //Affiche tous les enfants-petits enfants... depuis le noeud 2
            System.out.println("Enfants de noeud 2 ");
            Enumeration e2 = noeud2.preorderEnumeration();
            while (e2.hasMoreElements()) {
                System.out.println(e2.nextElement() + " ");
            }
        }
    }
    Et pour plus d'infos la bible : http://jmdoudoux.developpez.com/cour...ng.php#swing-8 (chapitre 15.8.4.3)

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2008, 03h15
  2. [JTree] Récupération des parents
    Par ShadyGuard dans le forum Composants
    Réponses: 8
    Dernier message: 05/04/2007, 12h19
  3. [C#] Récupération des variables system...
    Par smyley dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/08/2005, 11h39
  4. Récupération des noms de champs d'une table
    Par Battomura dans le forum SQL
    Réponses: 2
    Dernier message: 24/03/2003, 10h00
  5. Réponses: 13
    Dernier message: 20/03/2003, 08h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo