有200分啊,天!我来了;)哈哈哈;)public void mouseClicked(MouseEvent e)
{
    int x = e.getX();
    int y = e.getY();
    int row = tree.getRowForLocation(x,y);
    TreePath path = tree.getPathForRow(row);
    Rectangle mbounds = tree.getRowBounds(row);
    //TreePath  path = tree.getSelectionPath();
    if(path == null)
    {
        return;
    }    UITreeNode node = (UITreeNode)path.getLastPathComponent();    boolean isSelected = !(node.isSelected());
    //解决了默认双击展开与折叠的问题!
    if(mbounds != null && x > mbounds.x + ((UITreeNodeRenderer)tree.getCellRenderer()).check.getWidth())
    {
     //在这里做你的CheckBox操作
        return;
    }    if(ftreeModel.isChecked() && mbounds != null && x < mbounds.x + ((UITreeNodeRenderer)tree.getCellRenderer()).check.getWidth())
    {
        node.setIsChecked(!node.isChecked());
        node.setSelected(!node.isSelected());
        if(node.isChecked())
        {
            tree.getSelectionModel().addSelectionPath(path);
        }
    }
    if(node.isExpanded())
    {
        expandAll(tree,path,false);
        node.setisExpanded(false);
    }
    else
    {
        expandAll(tree,path,true);
        node.setisExpanded(true);
    }
}