Mise à jour jtree

Résolu
alafosse Messages postés 3 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 21 juillet 2005 - 20 juil. 2005 à 14:02
ManTico Messages postés 11 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 21 juillet 2005 - 21 juil. 2005 à 21:05
Bonjour à tous,

Voilà mon problème :

J'utilise le design pattern MVC. Donc j'ai un modéle et une des vue de mon modéle est un jtree. J'ai une classe, TreeFormater, qui , à partir de mon modèle permet de construire un DefaultTreeModel. Ensuite, j'instancie un JTree et je fais un setModel(mon DefaultTreeModel) à ce JTree.

Mon problème est pour la mise à jour de ce JTree, j'ai l'impression que je suis obligé de refaire un setModel à chaque fois que mon modèle change...

C'est pas terrible car toutes les branches séléctionnées par l'utilisateur se referment...

5 réponses

ManTico Messages postés 11 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 21 juillet 2005 1
21 juil. 2005 à 21:05
C'est normal qu'il le referme. En verité il ne le referme pas, il supprime tout les noeuds, puis ajouter les noeuds qui sont dans le modèle. Pour modifier ton arbre sans qu'il se referme, il faut recupèrer le model de l'arbre et y ajouter/supprimer les noeuds voulu. Il y a le méthode getModel() du JTree qui récupère le model, la méthode getRoot() du modèle qui récupère le noeud principal de l'arbre et se noeud, tu le converti en un DefaultMutableTreeNode, ou si tu as creer une classe pour les noeuds en cette classe et après tu peux te déplacer dans les noeuds et en ajouter/supprimer avec le méthode add()/remove() du DefaultMutableTreeNode, et après avoir fait le ajout/suppression appeler la méthode updateUI() du JTree pour qu'il affiche l'arbre modifier à l'écran.
1
ManTico Messages postés 11 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 21 juillet 2005 1
20 juil. 2005 à 17:10
Salut, essaye d'appeler le methode updateUI() du JTree après avoir fait tes mises à jour
0
alafosse Messages postés 3 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 21 juillet 2005
20 juil. 2005 à 17:31
je viens d'essayer, ca a le même comportement que update()...
0
ManTico Messages postés 11 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 21 juillet 2005 1
21 juil. 2005 à 15:10
Postes le code qui fait les mises a jour et je pourrais peut-être trouver quoi faire
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alafosse Messages postés 3 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 21 juillet 2005
21 juil. 2005 à 17:21
Et bien j'ai 3 vues : un arbre, du code xml et du texte. Le probleme est que Jtree.setModel referme l'arbre à chaque fois...

public void update(Observable o, Object arg) {
this.setTitle("Package view : " + model.getName());
xmlTree.setModel(model.formatTree());
packageCodeArea.setText(model.formatText());
xmlCodeArea.setText(model.formatXML());
}
}

model.formatTree() retourne un DefaultTreeModel.
0
Rejoignez-nous