Mise à jour jtree [Résolu]

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

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