[JTree] Couleur du texte des noeuds
Bonjour,
Dans un JTree, je souhaiterais mettre le texte d'un noeud en rouge lorsque celui-ci répond à certaines conditions (par exemple lorsque le noeud est une instance de la classe MonNoeud qui étend la classe DefaultMutableTreeNode).
Pour cela j'ai crée une classe qui étend DefaultTreeCellRenderer (voir ci-dessous) puis initialiser le Renderer de mon arbre avec celle-ci. Or cela ne marche pas vraiment, quelques noeuds ne correspondant pas au critère sont en rouge, et d'autres y répondant ne le sont pas. Cela semble régit par des règles bien précises, mais je n'arrive pas obtenir le résultat voulu.
Si quelqu'un peut m'aider...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
public class NoeudRenderer extends DefaultTreeCellRenderer {
public static final long serialVersionUID = 0;
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus){
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
//Si le noeud correspond à une MonNoeud il doit apparaitre en rouge
if (value.getClass().equals(MonNoeud.class)){
this.setTextSelectionColor(Color.RED);
this.setTextNonSelectionColor(Color.RED);
} else {
this.setTextSelectionColor(Color.BLACK);
this.setTextNonSelectionColor(Color.BLACK);
}
return this;
}
} |
Merci.