Bonjour à tous :D .
Je suis novice dans la conception Java.
J'ai un petit souci, ma jtree doit afficher l'arborescence des lecteurs. L'ennuie c'est que lorsque j'ajoute un noeud, l'affichage graphique ne se rafraichie pas. :evilred: Les dossiers s'affiche comme une feuille et non comme un dossier. je voudrai savoir comment afficher correctement les dossier.
voici mon code.
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 public class TreeView extends JScrollPane implements TreeExpansionListener, TreeSelectionListener{ //declaration de la gestion des noeuds GestNoeud gn = new GestNoeud(); //déclaration de la JTree qui afficheras l'arborescence des fichiers JTree Aff ; String n = new String(); DefaultMutableTreeNode root= new DefaultMutableTreeNode(); private MainWindows fen; public TreeView(DefaultMutableTreeNode racine,MainWindows fen) { super(); root = racine; Aff= new JTree(racine); this.fen = fen; gn.listLecteur(Aff,racine); Aff.addTreeExpansionListener(this); Aff.addTreeSelectionListener(this); setViewportView(Aff); // TODO Raccord de constructeur auto-généré } public void treeCollapsed(TreeExpansionEvent e){ } public void treeExpanded(TreeExpansionEvent e){ DefaultMutableTreeNode f = (DefaultMutableTreeNode)e.getPath().getLastPathComponent(); this.gestEvent(f); this.update(Aff.getGraphics()); this.updateUI(); this.notify(); } public void valueChanged(TreeSelectionEvent e){ DefaultMutableTreeNode f = (DefaultMutableTreeNode)e.getPath().getLastPathComponent(); n=e.getPath().getLastPathComponent().toString(); this.gestEvent(f); this.update(Aff.getGraphics()); this.updateUI(); this.notify(); } public void gestEvent(DefaultMutableTreeNode dm){ String fichier=""; int indic = 0; File objRoot = new File(dm.getUserObject().toString()); if (objRoot.isDirectory()){ File[] list = objRoot.listFiles(); if (list != null )gn.addChildren(Aff,list,dm); } this.fen.tp.setText(n); } public String Chemin(){ return n; } }
Merci d'avance pour votre aide.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 package Source; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; import javax.swing.JTree; import javax.swing.tree.DefaultTreeModel; import java.io.File; public class GestNoeud { DefaultTreeModel tm; DefaultMutableTreeNode n = new DefaultMutableTreeNode(); public GestNoeud(){ } protected JTree listLecteur(JTree jt, DefaultMutableTreeNode parentNode){ File[] lecteurs = File.listRoots(); for(int i = 0; i<lecteurs.length; i++){ DefaultMutableTreeNode nouveau= new DefaultMutableTreeNode( lecteurs[i].toString()); parentNode.add(nouveau); } return jt; } protected JTree addChildren(JTree jt,File[] f,DefaultMutableTreeNode parentNode){ parentNode.removeAllChildren(); for(int i=0; i<f.length;i++){ DefaultMutableTreeNode nouveau= new DefaultMutableTreeNode( f[i].toString()); parentNode.add(nouveau); if (f[i].isDirectory()){ File[] dossier= f[i].listFiles(); if(dossier!= null){ for(int c=0;c<dossier.length;c++){ DefaultMutableTreeNode fichier= new DefaultMutableTreeNode( dossier[c].toString()); nouveau.add(fichier); } } } } return jt; } public String Chemin(){ return n.getPath().toString(); } public void sel(DefaultMutableTreeNode select){ n = select; } }