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 :

Problème reload sur DefaultTreeModel


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2010
    Messages : 32
    Par défaut Problème reload sur DefaultTreeModel
    Coucou tout le monde,


    J'ai beau avoir lu plusieurs discussions sur le sujet du rafraîchissement du contenu d'un JTree, je continue à me battre avec mon code...

    Mon application affiche un arbre dont les feuilles sont les noms des sous-répertoires d'un répertoire donné. Il se peut que l'utilisateur ajoute ou efface un ou plusieurs sous-répertoires. Sans quitter l'application, il devrait avoir la possibilité de rafraîchir l'arbre.

    Avec le code ci-dessous, l'arbre affiché est vide (i.e. seul le root "List of tests" est affiché) alors que j'efface les fils puis recharge la nouvelle liste...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    private JTree tree;
     
    ...
     
    public void refreshListOfTests() {
     
        DefaultTreeModel model = ((DefaultTreeModel) tree.getModel());
     
        // Remove the current children
        ((DefaultMutableTreeNode)model.getRoot()).removeAllChildren();
     
        DefaultMutableTreeNode reloadedTests = defineListOfTests();
     
        // Reload the new children
        model.reload(reloadedTests);
    }
     
     
    public DefaultMutableTreeNode defineListOfTests() {
        DefaultMutableTreeNode result = new DefaultMutableTreeNode("List of tests");
     
        String allTestsDir = "/tmp";
        File dir = new File(allTestsDir);
        File[] tests = dir.listFiles();
     
        for (int i = 0; i < tests.length; i++) {
            result.add(new DefaultMutableTreeNode(tests[i].getName()));
        }
     
        return result;
    }

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il me semble qu'il te manque un setRoot quelque part dans ta méthode refreshListOfTests .

    En effet la méthode reload n'ajoute en rien les noeuds au modèle. Il ne fait que notifier au JTree que certains noeds ont changé.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2010
    Messages : 32
    Par défaut


    Me voilà moins bête d'un coup...


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

Discussions similaires

  1. Problème droit sur un tablespace
    Par wazar dans le forum Administration
    Réponses: 11
    Dernier message: 05/01/2010, 15h12
  2. Problème reload Page sur onClick
    Par Lapinpanda dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/08/2009, 10h35
  3. Problème innerHTML sur div !!!
    Par aburner dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/01/2005, 09h23
  4. [CR8] Problème tableau sur plusieurs pages???
    Par christophe28 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 02/11/2004, 15h46
  5. [MFC] Problème pointeur sur une classe
    Par mick74 dans le forum MFC
    Réponses: 7
    Dernier message: 14/04/2004, 14h17

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