如题~~就是说能不能让JTree的同一种节点(叶子节点)在同样的情况下(一样是被打开)却使用不同的icon?谢谢了~~DefaultTreeCellRenderer好象只能在描绘时使用一种icon。如果不行,能不能在UI描绘的时候加入我自己的代码?这个描绘的过程在哪里呢?

解决方案 »

  1.   

    写一个类,扩展JLabel,实现TreeCellRenderer接口,
    在下面的方法中根据value设置不同的icon
    public Component getTreeCellRendererComponent(JTree tree,Object value,
          boolean isSelected,boolean expanded,
          boolean leaf,int row,boolean hasFocus) 
    比如,你的节点对象有一个getIcon方法,可得到不同的icon,那么
    MyNode node=(MyNode)value;
    setIcon(node.getIcon());