1

如何更改JTreeSwing 组件中节点和根的图标?

4

3 回答 3

2

用,和. DefaultTreeCellRenderer_setClosedIconsetOpenIconsetLeafIcon

复制自如何使用树

ImageIcon leafIcon = createImageIcon("images/middle.gif");
if (leafIcon != null) {
    DefaultTreeCellRenderer renderer = 
    new DefaultTreeCellRenderer();
    renderer.setLeafIcon(leafIcon);
    tree.setCellRenderer(renderer);
}
于 2010-02-24T16:07:41.167 回答
1

Sun 的JTree教程中有一节介绍如何将 TreeCellRenderer 子类化以获取 JTree 中的节点和文本。

于 2010-02-24T16:08:57.417 回答
0

If all you trying to do is to have different Icons for closed node, leaf and opened nodes, it is very straight forward.

//Create 3 icons private Icon customOpenIcon = new ImageIcon("images/my_open.gif"); private Icon customClosedIcon = new ImageIcon("images/my_closed.gif"); private Icon customLeafIcon = new ImageIcon("images/my_leaf.gif");

//Assuming you created your DefaultMutableTreeNode hierarchy DefaultMutableTreeNode rootNode = new... ... JTree tree = new JTree(rootNode );

DefaultTreeCellRenderer customRenderer = new DefaultTreeCellRenderer();
customRenderer.setOpenIcon(customOpenIcon);
customRenderer.setClosedIcon(customClosedIcon);
customRenderer.setLeafIcon(customLeafIcon);
tree.setCellRenderer(customRenderer );
于 2010-02-24T16:32:02.357 回答