Назначение разных значков разным узлам в JTree

Можно ли назначить разные значки разным узлам в JTree с помощью DefaultTreeCellRenderer.setOpenIcon()? Спасибо.


person FadelMS    schedule 27.08.2011    source источник


Ответы (1)


Один и тот же экземпляр модуля рендеринга ячеек используется для рендеринга всех ячеек дерева. Значок открытия — это маленький символ + или треугольник слева от каждого узла дерева, который позволяет развернуть его (т. е. увидеть его дочерние узлы). Я сомневаюсь, что это та иконка, которую вы хотите изменить. Было бы довольно странно не использовать один и тот же для всех узлов.

Если вы хотите отобразить собственный значок для определенного узла, создайте подкласс DefaultTreeCellRenderer, переопределите getTreeCellRendererComponent, решите, какой значок отображать на основе на значение, переданное методу, и вызовите setIcon.

См. http://download.oracle.com/javase/tutorial/uiswing/components/tree.html#display для аналогичного примера (в котором настроена всплывающая подсказка, а не иконка, но идея та же).

person JB Nizet    schedule 27.08.2011
comment
См. также TreeIcon. - person trashgod; 27.08.2011
comment
Спасибо JB Nizet и Trashgod. - person FadelMS; 27.08.2011