salut,
j'aimerai savoir comment créer un arbre de parcour d'arborescence de windows en java.
merci d'avance.
Version imprimable
salut,
j'aimerai savoir comment créer un arbre de parcour d'arborescence de windows en java.
merci d'avance.
Salut,
je ne suis pas sûr de comprendre ..Citation:
un arbre de parcour d'arborescence de windows
si tu veux parler d'une arborescence graphique de fichier je peux t'aider.
sinon je vois pas tres bien ce que ça peut être...
si tu veux pouvoir sélectionner des fichiers ou des dossier le JFileChosser le fais très bien
je m'explique, en fait, je cherche à créer un arbre , c'est à dire une représentation graphique de l'arborescence du systeme, comme l'arbre dans l'explorateur windows, alors si quelqu'un peu m'aider, merci
salut !
utilise la classe JTree. Si tu connais pas fais des recherches (sur le forum ou sur www.developpez.com ou encore sur google) et tu trouveras plein de docs qui t'expliquent tout.
voila :wink:
J'ai fait ça pour mon projet et je me suis inspiré de ça :
http://java.sun.com/products/jfc/tsc...ree/index.html
http://www.chka.de/swing/tree/FileTreeModel.html
en 4 ou 5 coups de cuillère à pot c'est in-the-pocket (enfin presque....... :wink: )
Bon courage !!!!!!
Salut, j'espere que ça t'aidera
le model :
et le JTree :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
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 package outils_graphiques.models; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import javax.swing.event.TreeModelListener; import java.util.ArrayList; import java.util.HashMap; import java.util.Arrays; import java.io.FileFilter; import java.io.File; public class FileTreeModel implements TreeModel, FileFilter { private static final Object virtualLeaf = new Object(); private static final Object virtualRoot = new Object(); private HashMap map; private File[] roots; public FileTreeModel(File[] roots){ this.map = new HashMap(); this.roots = roots; } public boolean accept(File file){ //if(file.isDirectory() || file.getName().endsWith(".pdf")) return true; //else return false; return true; } public Object getRoot(){ return virtualRoot; } public boolean isLeaf(Object node){ return map.get(node) == virtualLeaf; } public int getChildCount(Object node){ ArrayList children = getChildren(node); if (children == null) return 0; return children.size(); } public Object getChild(Object parent, int index){ return getChildren(parent).get(index); } public int getIndexOfChild(Object parent, Object child){ return getChildren(parent).indexOf(child); } protected ArrayList getChildren(Object node) { if(node==virtualRoot){ ArrayList children = new ArrayList(roots.length); for (int len = roots.length, i = 0; i < len; i++) children.add(roots[i]); return children; } File f = (File)node; Object value = map.get(f); if (value == virtualLeaf) return null; ArrayList children = (ArrayList)value; if (children == null) { File[] c = f.listFiles(this); if (c != null) { Arrays.sort(c); children = new ArrayList(c.length); for (int len = c.length, i = 0; i < len; i++) { children.add(new File(c[i].getPath()){ public String toString(){ return this.getName(); } }); if (!c[i].isDirectory()) map.put(c[i], virtualLeaf); } } else children = new ArrayList(0); map.put(f, children); } return children; } public void valueForPathChanged(TreePath path, Object value){} public void addTreeModelListener(TreeModelListener l){} public void removeTreeModelListener(TreeModelListener l){} }
dans mon cas, je n'est pas acces à "poste de travail" donc ça démmare avec les drives.Code:
1
2 JTree tree = new JTree(new FileTreeModel(File.listRoots())); tree.setRootVisible(false);
ciao,
je vous remercie :wink: