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