Ändern Sie die Größe des JTree-Knotennamens, wenn Sie ein Symbol dynamisch hinzufügen, nachdem der Baum generiert wurde
-
28-10-2019 - |
Frage
In meinem Code kann ein JTree
-Knoten abhängig von einer Bedingung einen Icon
haben oder nicht.
Mein Problem ist, wenn ich den Icon
für einen Knoten festlegen möchte, die Größe des Knotennamens reduziert wird und " ... " angehängt wird.
Im Grunde genommen berechnet der Knoten seine Größe basierend auf der Symbolgröße neu und passt den Rest an.
Wie kann ich dieses Verhalten verhindern und dem Knoten erlauben, seine Größe zu erweitern, wenn ein Symbol hinzugefügt wird?
Hier ist ein Screenshot von ohne / mit Symbol:
Lösung
weiß nicht, wo Sie es tun, aber Sie vermuten, dass Sie es unter den Füßen des TreeModel tun: Der LayoutCache führt viele .. na ja .. Größen zwischen, sodass Sie sicherstellen müssen, dass dieser Cache ungültig wird.Der einzige Weg, dies zu tun, ist über TreeModelEvents, ungefähr (vorausgesetzt, das Modell ist vom Typ DefaultTreeModel):
myNodeData.setIcon(...);
treeModel.nodeChanged(node);