第一个问题我不清楚
第二葛问题看如下代码:
myCellRender=new ClassNameTreeCellRender();
jTree.setCellRenderer(myCellRender);class ClassNameTreeCellRender extends DefaultTreeCellRenderer
{
  public Component getTreeCellRendererComponent(JTree tree,
      Object value,boolean selected,boolean expanded,
      boolean leaf,int row,boolean hasFocus)
  {
    super.getTreeCellRendererComponent(tree,value,selected,expanded,leaf,row,hasFocus);
    DefaultMutableTreeNode node=(DefaultMutableTreeNode)value;
    if(node.isRoot())
      setIcon(new ImageIcon(Frm_UserGroup.class.getResource("openFile.gif")));
    else
    {
      Right right =(Right)node.getUserObject();
      if(right.getValue().equals("true"))
        setIcon(new ImageIcon(Frm_UserGroup.class.getResource("openFile.gif")));
      else if(right.getValue().equals("false"))
        setIcon(new ImageIcon(Frm_UserGroup.class.getResource("delete.gif")));
      else if(right.getValue().equals("null"))
        setIcon(new ImageIcon(Frm_UserGroup.class.getResource("CreatTab.GIF")));
    }
    return this;
  }
}