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 :

[Swing][JTree] Probleme de reload


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut [Swing][JTree] Probleme de reload
    Bonjour
    Je vous écris à propos de JTree. Je sais que des sujets traitent à peu près du même problème que le mien mais je préfère reposter un sujet avec mon cas précis.

    Voilà.
    J'ai un JSplitPane dans lequel j'ai deux Panel. A gauche, un arbre JTree, a droite, un formulaire.
    Dans l'arbre j'affiche des items, et à droite leur description.
    Quand je clic droit sur un item à gauche, je peux lui ajouter un sous-item : les champs du formulaire s'effacent, je les remplis et je sauvegarde.

    Mon problème c'est que après la sauvegarde, mon tree est bien rechargé, mais il est complètement collapsé. Et j'aimerais au contraire qu'il garde le même état.

    Pour info, j'étends JTree et j'implémente TreeModel pour faire un model custom.
    Lorsque je créé un élément, je recharge pour l'instant tout le modèle (j'ai pensé à faire une recharge locale mais je suis pas sûr que çà m'aiderait... à vous de me dire...)

    Donc ma question est: d'après vous, pourquoi mon arbre se collapse complètement? est-ce parce que je recharge complètement le model?

    J'ai essayé de conserver le chemin du dernier node sur lequel j'avais cliqué, puis de faire myTree.scrollPathToVisible(myLastNodePath). Mais çà ne marche pas. Au rechargement du modèle, je recrée tous les nodes... Cela viendrait-il de cela?
    La solution est-elle de faire un reload local et de retrouver le nouveau treePath correspondant à l'ancien?
    Une autre solution serait de poursuivre mes reloads globaux et de retrouber le nouveau treePath correspndant à l'ancien... Mais j'ai peur qu'alors seul ce chemin là soit expansé (j'ai oublié lol comment on dit en francais)... càd si j'avais egalement expandé d'autres chemins, çà va se perdre.... Alors que dois-je faire? Sauvegarder un état de mon arbre avant le reload et essayer de le mapper au nouvel arbre?

    Bref aidez-moi svp.
    J'étais tout content d'avoir réussi à gérer la création/edition/suppression des noeuds côté interface et côté serveur, et là je me retrouve bloqué avec ce petit bug bizarre.... Alors je m'énerve, et j'essaie des solutions trouvées sur les forums, et je fais des bricolages et c'est pire ... Donc bref j'attends vos réponses, je vais faire une pause jusqu'à demain matin très probablement...

    Nicolas.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Par défaut
    Pour ma part, j'utilise ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DefaultMutableTreeNode parent = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent();
                            if(parent == null )
                                return ; 
    DefaultMutableTreeNode node = new DefaultMutableTreeNode(nouveau);
    model.insertNodeInto(node, parent, parent.getChildCount());
    TreeNode[] nodes = model.getPathToRoot(node);
    TreePath path = new TreePath(nodes);
    tree.scrollPathToVisible(path=;
    avec nouveau un objet de type String et model DefaultTreeModel.

    [EDIT]
    Modification du code

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut
    Ouais...
    Je viens de me rendre compte que j'ai implémenté TreeModel, au lieu d'étendre DefaultTreeModel.
    C'était voulu parce que je fonctionne avec mon propre framework de développement côté client. Mais celui-ci n'était peut-être pas adapté pour les arbres et au final ca m'a peut etre foutu dedans.
    Donc a voir si en étendant DefaultTreeModel çà me faciliterait pas la vie, tout simplement...

    Nicolas.

Discussions similaires

  1. JTree probleme racine
    Par Bardack dans le forum Composants
    Réponses: 7
    Dernier message: 02/03/2007, 16h11
  2. swing et problème d'affichage
    Par tatatoui dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 04/10/2006, 11h35
  3. swing jtree et tabpane dans page jsp
    Par david06600 dans le forum Struts 1
    Réponses: 3
    Dernier message: 25/08/2006, 08h58
  4. [Swing][JTree][Affichage]Rafraichir un noeud
    Par Melchisedec dans le forum Composants
    Réponses: 2
    Dernier message: 27/03/2006, 16h10
  5. [Swing / JTree] Changer le background d'un TreeNode
    Par david06600 dans le forum Composants
    Réponses: 4
    Dernier message: 28/02/2006, 16h17

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