Изменение размера имени узла JTree при динамическом добавлении значка после создания дерева - PullRequest
1 голос
/ 21 февраля 2012

В моем коде, в зависимости от условия, узел JTree может иметь или не иметь Icon.Моя проблема в том, что когда я хочу установить Icon для узла, размер имени узла уменьшается и добавляется " ... ".

Таким образом, в основном, узел пересчитывает свой размер на основе размера значка и подгоняет остальные.

Как я могу предотвратить это поведение и разрешить узлу расширять свой размер при добавлении значка?

Вот скриншот без / со значком :

enter image description here

1 Ответ

6 голосов
/ 21 февраля 2012

не знаю, где вы это делаете, но подозреваете, что вы делаете это под ногами TreeModel: LayoutCache делает много ... ну ... кэширование размеров, поэтому вы должны убедиться, что он делает этот кеш недействительным. Единственный способ сделать это - через TreeModelEvents, что-то вроде (при условии, что модель имеет тип DefaultTreeModel):

myNodeData.setIcon(...);
treeModel.nodeChanged(node);
...