将不同的图标分配给 JTree 中的不同节点
是否可以使用 DefaultTreeCellRenderer.setOpenIcon()
将不同的图标分配给 JTree
中的不同节点?谢谢。
Is it possible to assign different icons to different nodes in a JTree
using DefaultTreeCellRenderer.setOpenIcon()
? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
相同的单元渲染器实例用于渲染树的所有单元。打开图标是每个树节点左侧的小+符号或三角形符号,允许展开它(即查看其子节点)。我怀疑这是您要更改的图标。如果不对所有节点使用同一个节点,那就太奇怪了。
如果要为特定节点显示自定义图标,请创建 DefaultTreeCellRenderer 的子类,覆盖
getTreeCellRendererComponent
方法,决定使用哪个图标根据传递给该方法的值进行显示,并调用setIcon
。请参阅 http://download.oracle.com/javase/tutorial/uiswing/components/tree .html#display 是一个类似的示例(自定义了工具提示,而不是图标,但想法是相同的)。
The same cell renderer instance is used to render all the cells of the tree. The open icon is the little + symbol, or triangle symbol at the left of every tree node which allows to expand it (i.e. see its child nodes). I doubt this is the icon you want to change. It would be rather strange not to use the same one for all the nodes.
If you want to display a custom icon for a specific node, create a subclass of DefaultTreeCellRenderer, override the
getTreeCellRendererComponent
method, decide which icon to display based on the value passed to the method, and callsetIcon
.See http://download.oracle.com/javase/tutorial/uiswing/components/tree.html#display for a similar example (which customized the tooltip, and not the icon, but the idea is the same).