Panel上有一棵子树,现在是全部收缩的情况。
想通过界面上的Button将这棵树一次性全部展开,
请问有什么方法可用?

解决方案 »

  1.   

    for (int i = 0; i < tree.getRowCount(); i++) {
    tree.expandRow(i);
    }
      

  2.   

    我试一下先。
    可是我觉得这样可能不行。
    如果第一个子节点展开增加了n个叶子节点,
    那后面就有很多节点的row超出了最初这个循环的条件tree.getRowCount()
    岂不是就展不开了?anyway,我还是要先试一下你说的这个做法。谢谢!
      

  3.   

    我是这样做的:    private void expandAllNodes()
        {
            DafualtMutableTreeNode root = (DafualtMutableTreeNode)treeModel.getRoot();
            if(root.getChildCount() == 0)
            {
                return;
            }
            expandNode(root);
        }    private void expandNode(DafualtMutableTreeNode node)
        {
            TreeNode[] pathToRoot = node.getPath();
            TreePath treePath = new TreePath(pathToRoot);
            jTree.expandPath(treePath);
            if(node.getChildCount() > 0)
            {
                for(Enumeration e = node.children(); e.hasMoreElements(); )
                {
                    DafualtMutableTreeNode childNode = (DafualtMutableTreeNode)e.nextElement();
                    expandNode(childNode);
                }
            }
        }请 gtlang78() 大哥指正~ ^_^