Modifier dynamiquement l'icône de nœuds spécifiques JTree

J'ai vu beaucoup d'exemples pour la modification de l'icône de nœuds au cours de l'arbre d'instanciation, mais je voudrais un moyen de modifier dynamiquement l'icône d'un nœud particulier plus tard. Donc, dans mon code principal-je ajouter à mon habitude moteur de rendu de mon arbre:

//Icon I want to set nodes to later
ImageIcon checkIcon = new ImageIcon("check.jpg");

//Creates tree with my nodes
JTree tree = new JTree(nodes.top);

//Create custom renderer
Scenario1Renderer renderer = new Scenario1Renderer();

//Set to single tree selection 
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

//Set tree to my custom renderer
//renderer.setRendererIcon(greenIcon);
tree.setCellRenderer(renderer);

Mon code dans le moteur de rendu est

public class Scenario1Renderer extends DefaultTreeCellRenderer {

ImageIcon rendererIcon;

    public void setRendererIcon(ImageIcon myIcon){
      this.rendererIcon = myIcon;
    };

public Component getTreeCellRendererComponent( 
         JTree tree, 
         Object value, 
         boolean sel, 
         boolean expanded, 
         boolean leaf, 
         int row, 
         boolean hasFocus)
{ 

    Component ret = super.getTreeCellRendererComponent(tree, value,
            selected, expanded, leaf, row, hasFocus);
            //setIcon( rendererIcon ) ;
            return ret;
    } 

Alors, évidemment, si j'ai mis mon rendererIcon, il va peindre tous mes nœuds avec l'icône j'ai passer au cours de l'arbre d'instanciation. J'ai, au contraire, veulent une sorte de méthode qui permet de définir l'icône d'un nœud particulier plus tard dans l'exécution de mon programme.

là, je ne vois aucune différence, ne pas comprendre, ce qui est la raison
"j'ai vu beaucoup d'exemples pour la modification de l'icône de nœuds au cours de l'arbre d'instanciation, mais je voudrais un moyen de modifier dynamiquement l'icône d'un nœud particulier plus tard" ajouter Ainsi que la capacité du moteur de rendu. Je ne vois pas comment c'est quelque chose de particulier. Je suis surpris de votre recherche ne s'est pas montré des exemples d'une "dynamique" de façon à rendre les cellules. Il devrait y avoir un grand nombre d'e.g.s qui montrent comment rendre les données différemment au moment de l'exécution et, selon le contenu.

OriginalL'auteur Matt | 2013-02-19