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;
    String nodename=(String)node.getUserObject();    if(selected&&hasFocus){
        if(node.isLeaf()){
            if(nodename.startsWith(" ")) node.setUserObject(nodename.substring(1));
            else node.setUserObject(" "+nodename);
        }
        System.out.println(nodename);
 
    }
    
    if(nodename.startsWith(" "))  setIcon(createImageIcon("选中.PNG"));
    else setIcon(createImageIcon("未选中.PNG"));    return this;
  }
(为简化)上面只考虑了叶节点    1.我是以 节点名称是否 startwith("  ") 来做标记,显示选中与否 放入不同icon,各位有好一点的办法吗?   2.我点击某一节点A,(本应该此节点选中),但是没反应,我再点击节点B,节点A 才被选中;再点击C,B才被选中即我选中A,没有立即调用 上面的渲染器 方法,为什么 ,树上还要再加监听???