public Component getTreeCellRendererComponent(JTree tree, Object value,
                                                boolean sel, boolean expanded,
                                                boolean leaf, int row,
                                                boolean hasFocus)
 {}
可否通过Object value设置,总得有什么条件嘛,要不就通过JTree tree指定某个。

解决方案 »

  1.   

    自己重载DefaultTreeCellRenderer基本上这个东东就是JLabel,自己看着办了.
      

  2.   

    public class IconNodeRenderer
            extends 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);            MyNode node = (MyNode)value;            setIcon(node.getTreeIcon());            return this;
          }
    }
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.Icon;public class MyNode extends public class MyNode
            extends DefaultMutableTreeNode
    {
          protected Icon icon;      public MyNode(String str, Icon p_icon)
          {
                super(str);
                setTreeIcon(p_icon);
          } public void getTreeIcon()
    {
    return icon;
    } public void setTreeIcon(Icon p_icon)
    {
    icon = p_icon;
    }}
      

  3.   

    pxboy(阿土仔) 的方法不错,不过在实际的使用当中,如果使用你的方法,那么每个节点都要保存自己的icon,我觉得开销太大!!!一般来说,在一个tree当中,图标的种类可能不会超过十个,那么可以根据分类的方式!比如说你可以根据你的节点,判断,然后静态指定就可以了!
      

  4.   

    行了,谢谢!每个结点都用一个icon是比较奢侈, zhang21cnboy(事了抚衣去,不留身与名)  说的没错。