Bonjour à tous,
je suis confronté à un problème assez retors, que voici :
Dans une applet, je construit un JTree dont les feuilles ont un label au format html, ce qui me permet d'avoir dans mon arbre du texte en gras, en italique et ce genre de choses... Je construit donc mes feuilles ainsi :
new DefaultMutableTreeNode(new MonObjet("<html>Mon <b>Titre</b>"));
Mon TreeCellRenderer en fonction de la node selectionnée change la couleur du texte :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| private void setColorForValue(Component compo, Object value) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
ISoutienTreeComponent v = (ISoutienTreeComponent) node.getUserObject();
if (v.getLvl() == ISoutienTreeComponent.LVL_DIRECTORY) {
compo.setForeground(Color.BLUE);
if(hasFocus)
{
compo.setForeground(Color.WHITE);
}
} else {
compo.setForeground(Color.BLACK);
if(hasFocus)
{
compo.setForeground(Color.WHITE);
}
}
} |
Quand mon applet est lancée avec java 1.6, tout fonctionne parfaitement
Quand mon applet est lancée avec java 1.5, le comportement devient bizarre : le couleurs des éléments du dessus sont appliqués à ceux du dessous, le fait de cliquer sur un élément au dessus de l'élément précédemment sélectionné n'aura pas le même résultat que si l'on clique sur l'élément du dessous, mais dans les deux cas le résultat n'est pas celui escompté, le texte disparait (texte blanc sur fond blanc) par exemple... Bref, ça ne marche pas du tout!
Quand je n'utilise pas de titre en html, que ce soit en 1.5 ou 1.6, je n'ai pas de souci... tout fonctionne!
Est-ce un problème lié à la gestion du html par la jre 1.5, ou bien est-ce moi qui code comme une porcasse?
Merci d'avoir pris le temps de lire ce post.
Partager