ArrayList multidimension : Ajouter des dimensions au fur et mesure
Bonjour,
Je suis en train de faire une petite application avec un JTree composé de Checkbox.
Je suis parti avec une récursivite pour faire apparaître mes répertoires, le code fonctionne bien
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| @SuppressWarnings("finally")
private static DefaultMutableTreeNode addDirectory(File file, DefaultMutableTreeNode noeud) {
File[] liste;
liste = file.listFiles();
try{
for(int i = 0 ; i < liste.length ; i++){
if(liste[i].isDirectory() == true){
System.out.println(liste[i]);
DefaultMutableTreeNode sous_rep = new DefaultMutableTreeNode(liste[i]);
//sous_rep.add( new DefaultMutableTreeNode(""));
/*que l'on ajoute au noeud précédent */
noeud.add(sous_rep);
/* et on regarde le contenu de ce nouveau répertoire */
addDirectory(liste[i], sous_rep);
}
}
} catch(NullPointerException e)
{
//exception que l'on obtient lorsqu'il n'y a plus de répertoire ou de fichier
} finally{
return noeud;
}
} |
En regardant quelques exemples, je me suis aperçu qu'il faut utiliser TreeCellRenderer. Pour cela il faut au definir un tableau multidimension pour faire le JTree comme l'exemple suivant
Code:
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
| public CheckNodeTreeExample() {
super("CheckNode TreeExample");
String[] strs = {"swing", // 0
"platf", // 1
"basic", // 2
"metal", // 3
"JTree"}; // 4
CheckNode[] nodes = new CheckNode[strs.length];
for (int i=0;i<strs.length;i++) {
nodes[i] = new CheckNode(strs[i]);
}
nodes[0].add(nodes[1]);
nodes[1].add(nodes[2]);
nodes[1].add(nodes[3]);
nodes[0].add(nodes[4]);
nodes[3].setSelected(true);
JTree tree = new JTree( nodes[0] );
tree.setCellRenderer(new CheckRenderer());
tree.getSelectionModel().setSelectionMode(
TreeSelectionModel.SINGLE_TREE_SELECTION
);
tree.putClientProperty("JTree.lineStyle", "Angled");
tree.addMouseListener(new NodeSelectionListener(tree));
JScrollPane sp = new JScrollPane(tree);
... |
Je comptais utiliser le principe de récursivité pour mon arraylist mais comment créer un arraylist dont le nombre de dimension évolue :calim2:???
Merci pour votre aide
Drick