public JTree arborescenceDossier(){ racine= new DefaultMutableTreeNode(new NoeudTitreDossier(dirRacine.getName(),dirRacine.getAbsolutePath()),true); File[] roots = dirRacine.listFiles(); for (int i = 0 ; i<roots.length ; i++) { if(roots[i].isDirectory()){ racine.add(getSubDirs(roots[i])); } } arbre=new JTree(racine); arbre.addMouseListener(new EcouteurSourisArborescence(this)); arbre.setCellRenderer(rc); arbre.setCellEditor(ec); return arbre; } /** * Méthode récursive permettant de récupérer * tous les fichiers et sous dossiers d un autre * @param root un File qui représente le lecteur ou le repertoire de départ * @return DefaultMutableTreeNode */ private DefaultMutableTreeNode getSubDirs(File root){ //on créé un noeud DefaultMutableTreeNode noeud= new DefaultMutableTreeNode(new NoeudTitreDossier(root.getName(),root.getAbsolutePath()),true); //on recupère la liste des fichiers et sous rep File[] list = root.listFiles(); if ( list != null){ //pour chaque sous rep on appel cette methode => recursivité for (int j = 0 ; j<list.length ; j++){ if (list[j].isDirectory()){ noeud.add(getSubDirs(list[j])); } } } return noeud; }