【发布时间】:2010-02-24 16:01:36
【问题描述】:
如何在 Swing 的JTree 组件中更改节点和根的图标?
【问题讨论】:
如何在 Swing 的JTree 组件中更改节点和根的图标?
【问题讨论】:
使用DefaultTreeCellRenderer 使用setClosedIcon、setOpenIcon 和setLeafIcon。
复制自How to Use Trees:
ImageIcon leafIcon = createImageIcon("images/middle.gif");
if (leafIcon != null) {
DefaultTreeCellRenderer renderer =
new DefaultTreeCellRenderer();
renderer.setLeafIcon(leafIcon);
tree.setCellRenderer(renderer);
}
【讨论】:
Sun 在 JTree 上的 Tutorial 有一节介绍如何继承 TreeCellRenderer 以获取 JTree 中的节点和文本。
【讨论】:
如果您只想为关闭节点、叶节点和打开节点设置不同的图标,那非常简单。
//创建3个图标 私人图标 customOpenIcon = new ImageIcon("images/my_open.gif"); 私人图标 customClosedIcon = new ImageIcon("images/my_closed.gif"); 私有图标 customLeafIcon = new ImageIcon("images/my_leaf.gif");
//假设您创建了 DefaultMutableTreeNode 层次结构 DefaultMutableTreeNode rootNode = new... ... JTree 树 = new JTree(rootNode );
DefaultTreeCellRenderer customRenderer = new DefaultTreeCellRenderer();
customRenderer.setOpenIcon(customOpenIcon);
customRenderer.setClosedIcon(customClosedIcon);
customRenderer.setLeafIcon(customLeafIcon);
tree.setCellRenderer(customRenderer );
【讨论】: