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 :

[JTree] Récupérer l'index d'un noeud depuis son TreePath


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut [JTree] Récupérer l'index d'un noeud depuis son TreePath
    bonjour à tous,
    j'ai un petit problème avec un JTree... je viens de m'y mettre et j'ai récupéré un petit exemple de JTree avec drag and drop sauf que tout n'est pas codé ...
    lors du dnd j'ai codé la suppression du noeud source, mais maintenant il me faut le rajouter juste après le noeud cible...
    là ça coince un peu

    j'arrive à récupérer le TreePath du noeud cible. Avec l exemple de la pièce jointe je récupère le Path suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [JTree, colors, red]
    //REMOVING: football
    il me manque juste à savoir comment d'après ce path je peux récupérer un index pour ma fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ((DefaultTreeModel) model).insertNodeInto(new DefaultMutableTreeNode(pathSource), 
    								new DefaultMutableTreeNode(pathTarget),
    								/*???*/);
    merci d'avance
    Images attachées Images attachées  

  2. #2
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    bon je touche presque au but ... mais pas tout à fait ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode)
    						(pathTarget.getLastPathComponent());
     
    						DefaultMutableTreeNode childNode = 
    							new DefaultMutableTreeNode(pathSource.getLastPathComponent());
     
    						((DefaultTreeModel) model).insertNodeInto(childNode, 
    								parentNode,
    								parentNode.getChildCount());
    ceci marche sauf que ça m'ajoute mon childNode DANS mon parentNode ...
    en gros si mon parentNode est une feuille ça le transforme en dossier et ça met la feuille dedans... au lieu de la mettre juste en dessous

  3. #3
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Salut jojodu31, puisque ton noeud est affiché dans parentNode au lieu de en-dessous, tu peux faire parentNode.getParent() non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ((DefaultTreeModel) model).insertNodeInto(
        childNode, 
        parentNode.getParent(),
        parentNode.getParent().getIndex(parentNode)+1);

  4. #4
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    oh my god c'est parfait ! tu as répondu à ma deuxième question que j'avais pas encore posée en plus

    par contre quand je veux mettre la feuille à la racine j'ai une erreur due au getParent() je pense... il doit falloir contrôler si la cible et la racine ou pas. Je vais essayer de voir ça ...

    autre GROS pb, c'est quand je veux déplacer un noeud contenant des feuilles, il déplace bien mais il transforme ce noeud en feuille et squizze son contenu

  5. #5
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    ça doit venir de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DefaultMutableTreeNode childNode =
     
    new DefaultMutableTreeNode(pathSource.getLastPathComponent());
    le new doit me faire perdre le contenu du noeud non ?

  6. #6
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Effectivement, javadoc de DefaultMutableTreeNode :
    Creates a tree node with no parent, no children, but which allows children, and initializes it with the specified user object.
    Tu devrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DefaultMutableTreeNode childNode = 
        ((DefaultMutableTreeNode)pathSource.getLastPathComponent()).removeFromParent();
    Ainsi tu gardes tout le contenu, ton parent devient null et il est supprimé du noeud d'origine, tout ça en une seule instruction

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récupérer le texte d'un noeud selon son attribut ?
    Par chico83 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 19/12/2014, 10h02
  2. [JTree] Récupérer un noeud
    Par bellemlih dans le forum Composants
    Réponses: 2
    Dernier message: 25/02/2008, 12h07
  3. [JTree] Récupérer le noeud sélectionné, sans événement
    Par Bobsinglar dans le forum Composants
    Réponses: 4
    Dernier message: 26/05/2005, 18h06

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