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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
package appliClasses;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.JScrollPane;
import java.io.File;
import java.io.IOException;
/**
* Cette classe a été prévue pour gérer les objets jTree().
* @author Geeks
* @version 1.0.0
*/
public class MyTree {
/**
* Les champs de la classe
*/
private JTree myTree = new JTree();
private DefaultMutableTreeNode parentNode;
private DefaultTreeModel dTreeModel = null;
/**
* Méthode : créer un JScollPane()
*/
public MyTree(JScrollPane parentScrollPane) {
//Affiche un JTree()
myTree.setShowsRootHandles(true);
//Affiche dans le JScrollPane() le JScrollPane
parentScrollPane.setViewportView(myTree);
}
/**
* Ajout d'un noeud racine
* @param rootname
* @return
*/
private void addRootNode(String rootName) {
//Crée un noeud parent
parentNode = new DefaultMutableTreeNode(rootName);
//Crée un modèle contenant le noeud parent
dTreeModel = new DefaultTreeModel(parentNode);
//Crée le noeud
myTree.setModel(dTreeModel);
}
/**
* Ajouter un noeud
* @param nameNode
* @param parentNode
* @return
*/
private DefaultMutableTreeNode addNode(String nameNode, DefaultMutableTreeNode parentNode) {
//Crée une instance de DefaultMutableTreeNode()
DefaultMutableTreeNode node = new DefaultMutableTreeNode(nameNode);
//Si parentNode est null
if(parentNode == null) {
//Crée un noeud
((DefaultMutableTreeNode)dTreeModel.getRoot()).add(node);
}
else {
//Sinon crée un noeud parent
parentNode.add(node);
}
//Retourne le noeud
return node;
}
/**
* Afficher un noeud parent particulier
* @param nameDonne
*/
public void affNameTree(String nameDonne) {
//Si nameDonne n'est pas null
if(nameDonne != null) {
//Ajoute un noeud parent
addRootNode(nameDonne);
}
else {
//Ajoute un noeud nommé erreur
addRootNode("Erreur");
}
}
/**
* Afficher le contenu d'un répertoire dans un JTree
* @param fileSelected
*/
public void affFileTree(File fileSelected) {
//Si fileSelected n'est pas null
if(fileSelected != null) {
try {
//Ajoute un noeud parent
addRootNode(fileSelected.getCanonicalPath());
//Tant qu'il reste des fichier ou dossier à afficher
for(int i = 0; i < fileSelected.listFiles().length; i++) {
//Ajoute un noeud
addNode(fileSelected.listFiles()[i].getName(), null);
}
}
catch (IOException e) {
//En cas d'erreur, affiche le message.
System.out.println(e.getMessage());
}
}
else {
//Sinon affiche comme parent
addRootNode("Rpg");
}
myTree.expandRow(0);
}
} |
Partager