我正在使用JIDE 的 CheckBoxTree来显示一个嵌套的复选框树,如下例所示:
我想知道树模型包含多少个节点。
如果我调用方法tree.getModel().getChildCount(rootNode),我只会得到直接子代的数量(例如,在这种情况下为 12 个),而不是进一步嵌套的任何子代的数量(20+)。
我正在使用JIDE 的 CheckBoxTree来显示一个嵌套的复选框树,如下例所示:
我想知道树模型包含多少个节点。
如果我调用方法tree.getModel().getChildCount(rootNode),我只会得到直接子代的数量(例如,在这种情况下为 12 个),而不是进一步嵌套的任何子代的数量(20+)。
递归:
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;
}
getChild()
使用该方法自己遍历树。