我想在jtree的叶节点上实现,点击一下其图标变换,在点击一下,其图标又变为原来的,也就是随着点击,有两个图标在循环出现。我现在只能做到当选中这个节点时其图标变换为另一个,可是要是在点击一下它不会变成原来的那个,请高手指点该怎么实现,请尽量详细一点,谢谢

解决方案 »

  1.   

    BasicTreeUI ui = (BasicTreeUI)this.getUI();
        closeExpIcon=new ImageIcon(cncuf.com.ITree.class.getResource("folder.gif"));
        openExpIcon=new ImageIcon(cncuf.com.ITree.class.getResource("fldr_obj.gif"));
        leafIcon=new ImageIcon(cncuf.com.ITree.class.getResource("bninexec.gif"));
        ui.setExpandedIcon(null);
        ui.setCollapsedIcon(null);
        DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)this.getCellRenderer();
        renderer.setOpenIcon(openExpIcon);
        renderer.setClosedIcon(closeExpIcon);
        renderer.setLeafIcon(leafIcon);
      

  2.   

    你在DefaultMutableTreeNode里面增加一个变量,记录当前显示的图标,
    然后再Renderer里面设置之前判断一下不就行了。