Изменение размера имени узла JTree при динамическом добавлении значка после создания дерева

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

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

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

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

1 ответ

Решение

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

myNodeData.setIcon(...);
treeModel.nodeChanged(node);
Другие вопросы по тегам