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 : problème d'affichage ajout/suppression noeud


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut JTree : problème d'affichage ajout/suppression noeud
    Bonjour,

    J'ai effectué un programme pour la mise à jour d'un JTree en implémentant l'interface TreeModel. Quand j'ajoute un élément (que ce soit un noeud ou une feuille), le tree ne met pas à jour les éléments enlevés ou ajoutés après avoir exécuté la ligne ci-dessous :
    tree.setModel(model);
    Mais le tree met à jour les éléments supprimés ou ajoutés si on fait comme suit :
    tree.setModel(null);
    tree.setModel(model);
    mais l'inconvenient c'est qu'il dissimule tous les sous-éléments.

    Est-ce que quelqu'un peut m'aider, parce que j'aimerai ajouter/supprimer un élément tout en gardant l'état du tree.

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    essaye ceci
    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
      // Create tree
        JTree tree = new JTree();
        DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
     
        // Find node to which new node is to be added
        int startRow = 0;
        String prefix = "J";
        TreePath path = tree.getNextMatch(prefix, startRow, Position.Bias.Forward);
        MutableTreeNode node = (MutableTreeNode)path.getLastPathComponent();
     
        // Create new node
        MutableTreeNode newNode = new DefaultMutableTreeNode("green");
     
        // Insert new node as last child of node
        model.insertNodeInto(newNode, node, node.getChildCount());

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    je te remercie pour ce portion de code, mais :
    • 1. mon model ne peut pas être converti en DefaultTreeModel
    • 2. j'ai implémenté un autre TreeNode pour gérer mes noeuds, et il ne peut pas être convertit en MutableTreeNode

    Mais ce portion de code marche pour la construction de tree à partir des classes du jdk.

    Est ce qu'il y a une autre solution?

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut problème résolu
    Dans ma classe qui étend JTree, j'ai implémenté l'interface TreeExpansionListener. Et lors de l'éxpansion de chaque noeud, j'ai enregistré dans un vecteur la classe TreePath correspondant à mon JTree, et inversement, quand un noeud est réduit, je l'enlève du vecteur.
    Alors, après avoir éxecuté la commande , je met après j'utilise la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setExpandedState(treePath , true)


    Merci à tous.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/05/2009, 16h52
  2. [swing] [JTREE] problèmes d'affichage
    Par moris113 dans le forum Composants
    Réponses: 3
    Dernier message: 25/10/2007, 10h41
  3. [ToolBar] Problème lors d'ajout/suppression de boutons
    Par joeln3 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/09/2007, 15h21
  4. [Swing][Jtree] Problème d'affichage
    Par shinchun dans le forum Composants
    Réponses: 2
    Dernier message: 10/08/2007, 14h33
  5. [Swing]Problème d'affichage sur un JTree
    Par tomca dans le forum Composants
    Réponses: 4
    Dernier message: 19/01/2006, 10h41

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