Bonjour tout le monde,
voila comme le titre l'indique, mon problème est au niveau de mon Jtree que j'ai crée à partir de mon TreeModel.
Ce que je souhaite est de personnaliser l'affichage de mon Jtree en fonction des informations que j'ai affecté aux nœuds lors de leurs création (dans une classe MyTreeNode, ainsi chaque nœud comprend un nom, un type et une description), en effet, colorer les nœuds qui ont le type "String" par exemple...
Sauf que lorsque j'ai utilisé la classe DefaultTreeCellRenderer, et en créant une classe MyTreeRenderer, j'ai pas pu récupéré les informations associées aux nœuds, et tout ce que me donne cette classe c'est un "value" du noeud courent de type Object qu'on peut le convertir en DefaultMutableTreeNode, mais pas en autre classe??
voila le code de la classe MyTreeRenderer et le problème est au niveau de la ligne en rouge qui ne marche pas, où j'ai essayé de récupérer le MyTreeNode pour pouvoir tester sur les informations associées, à partir du paramètre value de la classe getTreeCellRendererComponent:
voila j'espère que j'étais clair, et je vous remercie 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 class MyTreeRenderer extends DefaultTreeCellRenderer { public Component getTreeCellRendererComponent( JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { Component component=super.getTreeCellRendererComponent( tree, value, sel, expanded, leaf, row, hasFocus); DefaultMutableTreeNode node = (DefaultMutableTreeNode)value; MyTreeNode nodeInfo = (MyTreeNode)(node.getUserObject()); // if(nodeInfo.getType().equalsIgnoreCase("String")) // setBackground(Color.YELLOW); return this; }
Partager