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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
//quand un noeud est oouvert
public void treeExpanded (TreeExpansionEvent e) {
//récupération du noeud sélectionné,
DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) e.getPath().getLastPathComponent();
//appel à la fonction getNodes afin d'obtenir le listing du noeud à afficher
getNodes(e.getPath().getLastPathComponent(), parentNode);
//on efface le noeur temporaire créé précédemment, qui était en position 0
parentNode.remove(0);
//on met à jour le noeud en question (model = le DefaultTreeModel de mon arbre)
model.reload(parentNode);
}
.
.
.
//A partir d'un noeud donné, on ajoute à celui ci, l'ensemble des fichiers correspondant
public void getNodes(Object path, DefaultMutableTreeNode node) {
//on créé une variable File à partir du path donné afin de pouvoir récupérer les fichiers correspondant
File nodeToFile = new File(path.toString());
File[] files = nodeToFile.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
//je ne souhaitais pas afficher les fichiers cachés
if (!files[i].isHidden()) {
//on créé un noeud à partir de files[i]
DefaultMutableTreeNode node_tmp = new DefaultMutableTreeNode(files[i], true);
//si files[i] est un répertoire, je mets unnoeud temporaire
if (files[i].isDirectory()) {
DefaultMutableTreeNode temporaryNode = new DefaultMutableTreeNode("tmp");
node_tmp.add(temporaryNode);
}
//enfin, on ajoute tout ça au noeud parent
node.add(node_tmp);
}
}
}
} |