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 :

Rafraichissement d'un JTreeModel construit à partir d'une liste


Sujet :

Composants Java

  1. #1
    Membre régulier Avatar de scorbo
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 176
    Points : 83
    Points
    83
    Par défaut Rafraichissement d'un JTreeModel construit à partir d'une liste
    Bonjour,

    J'ai créé un JTree qui prend en model monJTreeModel. L'affichage fonctionne parfaitement. J'ai ajouté l'ouverture d'un popup-menu sur clique droit pour ajouter et supprimer des éléments dans l'arbre. Et là j'ai un problème sur le rafraichissement des données. En fait je me pose une question :
    - le JTree est la vue
    - monJTreeModel est le model du JTree mais il se construit à partir d'une liste d'éléments que je lui passe au moment de la construction.
    - la liste contient réellement les données, je considère monJTreeModel comme une simple mise en forme de cette liste pour le JTree.

    Quand je choisi d'ajouter un élément, je dis à mon controleur d'ajouter un élément dans la liste et si l'ajout se passe correctement alors il faudrait que monJTreeModel reprenne les données de la liste et donc par conséquent rafraichisse la vue. Comment monJTreeModel peut être au courant du changement ?? (j'ai trouvé une astuce mais qui n'est pas correcte : dire au JTree d'étendre le noeud -> ça provoque le rafraishissement des données)


    Merci

  2. #2
    Membre régulier Avatar de scorbo
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 176
    Points : 83
    Points
    83
    Par défaut
    Une solution consiste tout simplement à considérer le JTreeModel comme un wrapper entre les données et le JTree et c'est donc le contrôleur qui le crée et le gère.

    Par contre j'ai une erreur dans la classe BasicTreeUI$Handler lorsque j'appelle la méthode nodeChanged dans la méthode valueForPathChanged que j'ai surchargé.

    Version jdk utilisée :
    java version "1.7.0_02"
    Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode)

  3. #3
    Membre régulier Avatar de scorbo
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 176
    Points : 83
    Points
    83
    Par défaut
    Il semblerait qu'il y ait un bug dans la classe BasicTreeUI :
    getPathBounds peut renvoyer null, mais aucune vérification n'est faite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Rectangle newMinBounds = getPathBounds(tree, minPath);
    if (indices.length == 1 && newMinBounds.height == minBounds.height) {
        tree.repaint(0, minBounds.y, tree.getWidth(), minBounds.height);
    }
    Néanmoins, j'ai du oublier quelque chose qui fait que getPathBounds retourne null...

  4. #4
    Membre régulier Avatar de scorbo
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 176
    Points : 83
    Points
    83
    Par défaut
    Le problème venait de ma redéfinition de la méthode getChild de mon TreeModel qui n'était pas correcte.

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

Discussions similaires

  1. input construit à partir d'une div
    Par loubigou dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/07/2015, 21h34
  2. JTable construit à partir d'une requête
    Par jr_momo dans le forum Composants
    Réponses: 1
    Dernier message: 16/04/2007, 16h24
  3. Réponses: 3
    Dernier message: 19/05/2005, 17h52
  4. Réponses: 3
    Dernier message: 25/04/2005, 15h26
  5. Trouver equation à partir d'une liste de points
    Par scarabee dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 27/05/2004, 17h05

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