Hallo,
ich habe einem Baum mit versch. Knoten. Jeder Knoten hat ein bestimmtes Icon.
Zum erstellen der Knoten verwende ich einen eigenen Rederer, der von DefaultTreeCellRenderer abgeleitet wurde. Im Renderer setze ich:
this.setIcon(icon);
this.setLeafIcon(icon);
this.setOpenIcon(icon);
this.setClosedIcon(icon);
this.setDisabledIcon(icon);
Icon ist ein vom Knoten abhängiges Icon.
Wenn ich nun den Test eines Knoten ändern möchte, erscheint ein falsches Icon im Baum. Erst wenn ich den Editormodus wieder verlasse wird das ursrüngliche Icon wieder angezeigt. Das fehlerhafte Icon ist das Defaulticon des Baumes.
Wie kann ich dies verhindern bzw. errreichen , dass immer mein Icon angezeigt wird.
Danke
Arni
Moin
Wenn ich nun den Test eines Knoten ändern möchte, erscheint
ein falsches Icon im Baum.
Während dem Verändert übernimmt der CellEditor die komplette Anzeige. Wenn du deine Icons auch im Editor-Modus haben möchtest muss du auch noch den DefaultCellEditor umbauen. Funktioniert prinzipell nach dem gleichen Muster wie beim CellRenderer, ist also nicht so viel Aufwand.
cu
Beim Editor gibt es aber keine Möglichkeit die Icons zu setzen. Oder ?
Ich wollte eigentlich nicht extra dafür ein Label verwenden.
Wie mache ich das dann also im Editor ?
Danke
Arni
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Moin
Beim Editor gibt es aber keine Möglichkeit die Icons zu
setzen. Oder ?
Das Icon ist definiert in DefaultTreeCellEditor.editingIcon . Also über java.lang.reflect austauschen oder:
Den Editor mit „new DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer)“ erzeugen. Da müsste das Icon vollautomatisch übernommen werden.
Ich wollte eigentlich nicht extra dafür ein Label verwenden.
Auf das eine Label kommst bei Bäumen nicht an.
cu