Bonjour à tous .
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. Les dossiers s'affiche comme une feuille et non comme un dossier. je voudrai savoir comment afficher correctement les dossier.
voici mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Partager