Mise à jour jtree [Résolu]

Messages postés
3
Date d'inscription
lundi 2 mai 2005
Dernière intervention
21 juillet 2005
- - Dernière réponse : ManTico
Messages postés
11
Date d'inscription
mercredi 20 août 2003
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...
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
11
Date d'inscription
mercredi 20 août 2003
Dernière intervention
21 juillet 2005
1
1
Merci
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.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ManTico
Messages postés
11
Date d'inscription
mercredi 20 août 2003
Dernière intervention
21 juillet 2005
1
0
Merci
Salut, essaye d'appeler le methode updateUI() du JTree après avoir fait tes mises à jour
Commenter la réponse de ManTico
Messages postés
3
Date d'inscription
lundi 2 mai 2005
Dernière intervention
21 juillet 2005
0
Merci
je viens d'essayer, ca a le même comportement que update()...
Commenter la réponse de alafosse
Messages postés
11
Date d'inscription
mercredi 20 août 2003
Dernière intervention
21 juillet 2005
1
0
Merci
Postes le code qui fait les mises a jour et je pourrais peut-être trouver quoi faire
Commenter la réponse de ManTico
Messages postés
3
Date d'inscription
lundi 2 mai 2005
Dernière intervention
21 juillet 2005
0
Merci
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.
Commenter la réponse de alafosse

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.