一般Jtree默认的图片是文件夹的图标,请问有什么方法能改变图标,请高手指点指点!

解决方案 »

  1.   


    Swing 中负责绘图的部分都在相应的 Renderer 中完成.
    缺省的 JTree 中 使用一个 DefaultTreeCellRenderer 的实例完成.DefaultTreeCellRenderer  实现了 TreeCellRenderer 方法.你可以自己实现一个 TreeCellRenderer 的实例.不过有点麻烦.
    如果只想简单一点改变 图标,下边的例子就可以了.public class TestJTree {

    public static void main(String[] args) {


    JTree tree = new JTree();

    DefaultTreeCellRenderer renderer = ((DefaultTreeCellRenderer)tree.getCellRenderer());

    renderer.setLeafIcon(new ImageIcon("c:/redswirl.gif"));
    renderer.setOpenIcon(new ImageIcon("c:/lfolder.gif"));
    renderer.setClosedIcon(new ImageIcon("c:/rfolder.gif"));


    JFrame frame = new JFrame();
    frame.add(tree);
    frame.setSize(300,400);
    frame.setVisible(true);

    }}
      

  2.   

    需要自定义绘制器(TreeCellRenderer)jtree.setCellRenderer(new DefaultTreeCellRenderer() {        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
                super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
                
                // closedIcon = ...;
                // openIcon = ...;
                // setIcon(closedIcon);            return this;
            }
        });