Bonjour à tous,

Voila mon probème je dois changer le type d'icone ds un arbre en fonction d'une propriété de l'objet metier. J'ai un arborescence d'objet metier Data<Ressource> et lorsque la propriété isGroup de Ressource est 'true' mais que l'objet est une feuille ds l'arbre, je dois afficher l'icone 'DefaultClosedIcon' et non 'DefaultLeafIcon' ... J'ai donc créé un rendrer que voici :

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
 
public class StagiaireTreeCellRenderer extends DefaultTreeCellRenderer{
 
   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);
 
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
        Data<Ressource> dataRessource=(Data<Ressource>)node.getUserObject();
 
        if(dataRessource!=null&&dataRessource.getData()!=null){
            setText(dataRessource.getData().getName());   
            if(dataRessource.getData().isGroup()==true&&leaf==true)
                this.setLeafIcon(this.getDefaultClosedIcon());
            else 
                this.setLeafIcon(this.getDefaultLeafIcon());
        }
        else
            setText("???");
 
        return this;
    }
}
Le problème est que les bons icones ne sont pas selectionné ... Par contre dès que je sélèctionne une ligne ds mon arbre, là tout est correcte ... Mais si après je change d'écran ou que je bouge la scrollbar de nouveau ca déconne !