Bonjour,

encore une question d'IHM qui n'est pas ma tasse de thé. J'ai regardé la doc de sun et quelques tutoriaux là-dessus mais je n'arrive pas poour le moment à faire ce qui est décrit ci-après :
: je voudrais pourvoir associer une image différente à chaque noeud principal de mon JTree. J'entends par noeud principal les fils du root (LAUNCHER) uniquement cad DEVICE, INTERFACERULE, PERSON, GROUP, SMTPSERVER, RULE (cf code joint). J'ai réussi à associer une image mais c'est la même sur chaque noeud noeud et on vu que l'on travaille sur le JTree pour celà et non sur le NodeTree je ne vois pas trop comment faire. Faut-il que je redéfinisse une classe héritant de DefaultTreeCellRenderer :

Merci d'avance pour vos réponses toujours très instructives.

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
	public static DefaultMutableTreeNode dmt = new DefaultMutableTreeNode("LAUNCHER");
	public static DefaultMutableTreeNode dmtDevice = new DefaultMutableTreeNode("DEVICE");
	public static DefaultMutableTreeNode dmtInterfaceRule = new DefaultMutableTreeNode("INTERFACERULE");
	public static DefaultMutableTreeNode dmtPerson = new DefaultMutableTreeNode("PERSON");
	public static DefaultMutableTreeNode dmtGroup = new DefaultMutableTreeNode("GROUP");
	public static DefaultMutableTreeNode dmtSmtpServer = new DefaultMutableTreeNode("SMTPSERVER");
	public static DefaultMutableTreeNode dmtRule = new DefaultMutableTreeNode("RULE");
	public static DefaultTreeModel treeModel;
	public static JTree jt;
 
...............................
...............................
 
	      dmt.add(dmtDevice);
	      dmt.add(dmtInterfaceRule);
	      dmt.add(dmtPerson);
	      dmt.add(dmtGroup);
	      dmt.add(dmtSmtpServer);
	      dmt.add(dmtRule);
 
	      treeModel = new DefaultTreeModel(dmt);
	      jt = new JTree(treeModel);
	      ImageIcon OpenIcon = new ImageIcon("modem.jpg");
	      if (OpenIcon != null) {
	          DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
	          renderer.setClosedIcon(OpenIcon);
	          renderer.setOpenIcon(OpenIcon);
 
	          jt.setCellRenderer(renderer);
	      }
PS:je ne mets pas tout le code, ne vous inquiétez pas le reste ne pose pas de problème.