JTree - Leaf-Node als Nicht-Leaf-Node anzeigen

Hiho,

in meiner Anwendung hab ich einen wunderschönen JTree vor mir. Der eigentliche Wurzelnode ist unischtbar gemacht mit setRootVisible(false);
Auf der Hierarchieebene nach dem Wurzelnode (also Ebene 1, unsichtbarer Wurzelnode auf Ebene 0) sollen nur Nicht-Leaf Nodes angezeigt werden. Die Nodes auf Ebene 1 enthalten dann jeweils weitere Leaf-Node-Einträge (auf Ebene 2).

Zu meinem Problem: Beim befüllen des JTrees kann es nun vorkommen, dass ein Node auf Ebene 1 keine Kinder mehr zugewiesen bekommt (weil sie nicht exisiteren) und dann wird mir dieser Node als Leaf angezeigt. Ich hätte aber gerne, dass der Node trotzdem kein Leaf-Node ist, sozusagen will ich einfach dass Nicht-Leaf-Icon an diesem Node haben.

Ich schätze mal ich brauche einen eigenen TreeCellRenderer, weiß aber nicht genau an welcher Schraube ich drehen muss um den gewünschten Effekt zu erhalten

Der TreeCellRenderer ist eine Möglichkeit. Wenn Du erkennen kannst, dass es sich um einen Knoten der Ebene 1 handelt (getParent == Root), kannst Du je einfach das passende Icon setzen. Alternativ kann man den Objekten dieser Knoten einen Marker mitgeben, den man im Renderer überprüft usw.
Alternativ wäre auch für die diese Knoten eine eigene Ableitung von TreeNode möglich, die bei der isLeaf() immer false zurückgibt, könnte aber etwas mehr Aufwand verursachen diesen Knoten im TreeModel, gemeinsam mit den normalan Knoten, unterzubringen.
Eine weitere Möglichkeit wäre ein eigenes TreeModel und dort die Methode isLeaf(Object node) überschreiben, allerdings muss man auch hier wieder erkennen können, dass es sich um einen Knoten der Ebene 1 handelt.

Am einfachsten ist sicherlich Weg über den Renderer.

Danke für deine Tipps. Hab für ne eigene TreeNode Klasse entschieden und dann isLeaf() überschrieben