tree.addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent me){
                 if(me.getClickCount()==2){
                      //在里面加入判断当前节点,并让当前节点不展开
                 }
             }
        });

解决方案 »

  1.   

    我就是想问JTree的哪个API可以实现这个功能???我找了一上午没有结果,所以请教大家
      

  2.   

    其实就是TreeWillExpandListener的应用,以及treeWillExpand()方法的应用
    下面的代码是其中的事件处理代码,添加到你的程序中即可。如下:
    //为你的树添加TreeWillExpandListener事件监听器
    myTree.addTreeWillExpandListener(new javax.swing.event.TreeWillExpandListener() {
    public void treeWillCollapse(TreeExpansionEvent tee){
    //树的收缩
    }
    public void treeWillExpand(TreeExpansionEvent tee) throws ExpandVetoException{
    //树的展开,此时抛出例外,阻止它的展开                         
        throw new ExpandVetoException(tee);
    });
      

  3.   

    首先,叶子结点是不能被展开的,你可以在双击时判断,那些结点需要展开
    (假设都是叶子结点的话).在需要展开的叶子结点下挂上展开的子孙.当然,有可能你一开始就展开了整个树,只是想由条件判断不展开一些非叶
    子结点.那么,DefaultMutableTreeNode的方法setAllowsChildren(false)
    还有那么一点用.不过需要记住的是,在用这个方法后,如果你在使用的这个
    DefaultMutableTreeNode上又挂了一些结点的话,你先前的设置在这时无效.
    因为,此时,你若调用getAllowsChildren,返回的必定是true.
      

  4.   

    cq_pro(重庆制造) :这是正解