Problème utilisation jtree [Résolu]

Fredoxmm 8 Messages postés jeudi 7 juin 2007Date d'inscription 24 novembre 2010 Dernière intervention - 24 juil. 2008 à 10:20 - Dernière réponse : uhrand 493 Messages postés samedi 20 mai 2006Date d'inscription 15 juillet 2012 Dernière intervention
- 24 juil. 2008 à 16:26
bonjour,

je réalise pour une appli, une petite gestion d'explorateur de fichier. L'utilsiateur choisi grace à un chooser un dossier, et cela est censé afficher le contenu (fichiers et sous dossiers) dans un jtree.

Pour cela j'ai ce code:

public void generateFichier(String rootCombo){

    File dossier;
    String [] listefichiers;
    File[] buffer;
    
    int i = 0;
    int j=0;
    
    DefaultMutableTreeNode noeudPrinci = new DefaultMutableTreeNode("rootCombo",true);
    dossier = new File(rootCombo);
    buffer = dossier.listFiles();
    
    listefichiers = dossier.list();
    
    for(j=1;j<dossier.length(); j++){
        DefaultMutableTreeNode noeud = getDirs(buffer[i]);
        noeudPrinci.add(noeud);
        }
}

Méthode appelée après validation du choix de dossier.

Et voici la méthode getDirs:

public DefaultMutableTreeNode getDirs(File root){
    
    int i = 0;
    
    DefaultMutableTreeNode repertoire = new DefaultMutableTreeNode(root,true);  
    
    File[] liste = root.listFiles();    //récupération des fichiers et sous rep de root
    
    if(liste!=null){
        
        for(i = 1; i<liste.length; i++){
            
            DefaultMutableTreeNode buffer = null;    //Création d'un noeud pour y stocker un nom de répertoire
            
            if(liste[i].isDirectory()){                 //Test si l'élement contenu dans liste est un répertoire ou un fichier,
                buffer = getDirs(liste[i]);
                repertoire.add(buffer);
                
            }
        }
    }
    
    return repertoire;
}

Le problème que je rencontre actuellement est que je ne sais pas comment attribuer mon noeud "noeudPrinci" de ma méthode "generate" à mon jTree.

Pourquoi? car j'ai fait mon interface avec visual editor d'eclipse, et donc par conséquent une méthode existe déja pour instanciée le composant jTree. Donc je ne peux pas le ré instancier une seconde fois, alors existe il un "jtree.add(noeud)" ou quelque chose comme ca?

merci par avance
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
uhrand 493 Messages postés samedi 20 mai 2006Date d'inscription 15 juillet 2012 Dernière intervention - 24 juil. 2008 à 16:26
3
Merci
Tu peus essayer ceci:

public void generateFichier(final String rootCombo){
    MutableTreeNode noeudPrinci = new DefaultMutableTreeNode("rootCombo", true);
    DefaultTreeModel model = new DefaultTreeModel(noeudPrinci);
    tree.setModel(model);
    File[] buffer = new File(rootCombo).listFiles();
    for (int j = 0; j < buffer.length; j++) {
        model.insertNodeInto(getDirs(buffer[j]), noeudPrinci, noeudPrinci.getChildCount());
    }
}
public DefaultMutableTreeNode getDirs(final File root) {
    int i = 0;
    DefaultMutableTreeNode repertoire = new DefaultMutableTreeNode(root, true);
    File[] liste = root.listFiles();    //récupération des fichiers et sous rep de root
    if (liste != null) {
        for (i = 0; i < liste.length; i++) {
            DefaultMutableTreeNode buffer = null;    //Création d'un noeud pour y stocker un nom de répertoire
            if (liste[i].isDirectory()) {                 //Test si l'élement contenu dans liste est un répertoire ou un fichier,
                buffer = getDirs(liste[i]);
                repertoire.add(buffer);
            }
        }
    }
    return repertoire;
}

Merci uhrand 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de uhrand

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.