Bonjour, j'ai créé un JTree, dans lequel il y a 3 types de noeuds. Un noeud représentant des projets, un noeud représentant des dossiers é un noeud représentant des fichiers, je voudrais pour chaque type de noeud avoir une icone particuliere :
Voici ma classe qui ne fonctionne pas comme je le voudrais, j'ai pour mon noeud racine qui devrait etre un projet, une icone de dossier, et pour un dossier lorsqu'il est fermé j'ai une icone de projet é lorsque que j'étend le dossier, l'icone de dossier se met bien en place.
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
 
public class MyTreeCellRenderer extends DefaultTreeCellRenderer {
 
	private Icon openIcon = null;
	private Icon closeIcon = null;
	private Icon leafIcon = null;
	private Icon projectOpenIcon = new ImageIcon("icons/book_open.png");
	private Icon projectCloseIcon = new ImageIcon("icons/book_blue.png");
	private Icon folderOpenIcon = new ImageIcon("icons/folder.png");
	private Icon folderCloseIcon = new ImageIcon("icons/folder_closed.png");
	private Icon fileIcon = new ImageIcon("icons/document.png");
 
 
	@Override
	public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected,
			boolean expanded, boolean leaf, int row, boolean hasFocus) {
 
		super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row,
				hasFocus);
 
		LogescoTreeNode node =
			(LogescoTreeNode)value;
		Object obj = node.getUserObject();
 
		if(openIcon == null) {
 
			openIcon = this.getOpenIcon();
 
			if(openIcon != null) {
 
				if(obj instanceof LProject) {
 
					openIcon = projectOpenIcon;
					this.setOpenIcon(openIcon);
					openIcon = null;
 
				} else if(obj instanceof LFolder) {
					openIcon = folderOpenIcon;
					this.setOpenIcon(openIcon);	
					openIcon = null;
				}
			}
		}
 
		if(closeIcon == null) {
 
			closeIcon = this.getClosedIcon();
 
			if(closeIcon != null) {
 
				if(obj instanceof LProject) {
					closeIcon = projectCloseIcon;
					this.setClosedIcon(closeIcon);
					closeIcon = null;
 
				} else if(obj instanceof LFolder) {
					closeIcon = folderCloseIcon;
					this.setClosedIcon(closeIcon);
					closeIcon = null;
				}
			}
		}
		this.setLeafIcon(fileIcon);
 
 
		return this;
	}
Si qqun saurait m'expliquer pourquoi il y a un mélange dans les icones, ou une meilleur façon de coder pour avoir ce que je souhaite, merci a vous.
David