Можно ли назначить разные значки разным узлам в JTree
с помощью DefaultTreeCellRenderer.setOpenIcon()
? Спасибо.
Назначение разных значков разным узлам в JTree
Ответы (1)
Один и тот же экземпляр модуля рендеринга ячеек используется для рендеринга всех ячеек дерева. Значок открытия — это маленький символ + или треугольник слева от каждого узла дерева, который позволяет развернуть его (т. е. увидеть его дочерние узлы). Я сомневаюсь, что это та иконка, которую вы хотите изменить. Было бы довольно странно не использовать один и тот же для всех узлов.
Если вы хотите отобразить собственный значок для определенного узла, создайте подкласс DefaultTreeCellRenderer, переопределите getTreeCellRendererComponent
, решите, какой значок отображать на основе на значение, переданное методу, и вызовите setIcon
.
См. http://download.oracle.com/javase/tutorial/uiswing/components/tree.html#display для аналогичного примера (в котором настроена всплывающая подсказка, а не иконка, но идея та же).
TreeIcon
.
- person trashgod; 27.08.2011