如何计算JTree中的节点数?

Red*_*ite 2 java tree swing jtree

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

示例图片

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

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

Nom*_*Sim 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;  
}
Run Code Online (Sandbox Code Playgroud)