Das Symbol bestimmter Knoten in JTree dynamisch ändern
Ich habe viele Beispiele für das Ändern des Symbols von Knoten während der Bauminstanziierung gesehen, möchte aber später die Möglichkeit haben, das Symbol eines einzelnen Knotens dynamisch zu ändern. Also füge ich in meinem Hauptcode meinen benutzerdefinierten Renderer zu meinem Baum hinzu:
// 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);
Mein Code im Renderer ist
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;
}
Wenn ich also mein rendererIcon einstelle, werden alle meine Knoten mit dem Symbol gezeichnet, das ich während der Bauminstanziierung übergebe. Ich möchte stattdessen eine Methode, mit der das Symbol eines einzelnen Knotens später bei der Ausführung meines Programms festgelegt werden kann.