PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [java] JTree knoten icons dynamisch aendern



marius
26-10-2004, 06:54
hallo zusammen,

wie kann ich einem knoten eines bestehenden baumes nachtraeglich ein neues icon verpassen?
und zwar moecht ich das fuer einen bestimmten knoten machen, nicht fuer alle children pauschal z.b..
geht das ueberhaupt noch oder muss ich da von vornerein etwas anders machen an dem baum?

fuer jeden hinweis bin ich dankbar!
wenns geht gleich code sniplett mit dazu.

gruss
marius

fs111
26-10-2004, 10:06
Das geht, Du musst dazu eine Klasse schreiben, die von DefaultTreeCellRenderer erbt. In dieser Musst Du dann folgende Mehtode überschreiben:



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;
//Setze das Icon neu
return this;
}



Hinter dem Parameter "Object value" verbirgt sich der aktuelle Knoten des Trees, d.h. Du musst value nich DefaultMutableTreenode casten, und kannst danach auf das User-Objekt zu greifen, und in Abhängigkeit dessen, dem Knoten ein neues Symbol verpassen (die Methode dafür ist setIcon(ImageIcon)).

HTH

Grüße fs111

marius
26-10-2004, 11:23
war genau was ich gesucht hab!