tree.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
if(me.getClickCount()==2){
//在里面加入判断当前节点,并让当前节点不展开
}
}
});
public void mouseClicked(MouseEvent me){
if(me.getClickCount()==2){
//在里面加入判断当前节点,并让当前节点不展开
}
}
});
下面的代码是其中的事件处理代码,添加到你的程序中即可。如下:
//为你的树添加TreeWillExpandListener事件监听器
myTree.addTreeWillExpandListener(new javax.swing.event.TreeWillExpandListener() {
public void treeWillCollapse(TreeExpansionEvent tee){
//树的收缩
}
public void treeWillExpand(TreeExpansionEvent tee) throws ExpandVetoException{
//树的展开,此时抛出例外,阻止它的展开
throw new ExpandVetoException(tee);
});
(假设都是叶子结点的话).在需要展开的叶子结点下挂上展开的子孙.当然,有可能你一开始就展开了整个树,只是想由条件判断不展开一些非叶
子结点.那么,DefaultMutableTreeNode的方法setAllowsChildren(false)
还有那么一点用.不过需要记住的是,在用这个方法后,如果你在使用的这个
DefaultMutableTreeNode上又挂了一些结点的话,你先前的设置在这时无效.
因为,此时,你若调用getAllowsChildren,返回的必定是true.