2

我正在使用JIDE 的 CheckBoxTree来显示一个嵌套的复选框树,如下例所示:

示例图像

我想知道树模型包含多少个节点。

如果我调用方法tree.getModel().getChildCount(rootNode),我只会得到直接子代的数量(例如,在这种情况下为 12 个),而不是进一步嵌套的任何子代的数量(20+)。

4

2 回答 2

7

递归:

public int getNumberOfNodes(TreeModel model)  
{  
    return getNumberOfNodes(model, model.getRoot());  
}  

private int getNumberOfNodes(TreeModel model, Object node)  
{  
    int count = 1;
    int nChildren = model.getChildcount(node);  
    for (int i = 0; i < nChildren; i++)  
    {  
        count += getNumberOfNodes(model, model.getChild(node, i));  
    }  
    return count;  
}
于 2012-12-19T14:21:35.957 回答
2

getChild()使用该方法自己遍历树。

http://en.wikipedia.org/wiki/Tree_traversal

于 2012-12-19T14:21:41.673 回答