我使用JIDE's CheckBoxTree顯示覆選框的嵌套的樹狀結構,在這個例子中:如何計算JTree中的節點數?
我想知道樹模型多少節點包含。
如果我打電話給方法tree.getModel().getChildCount(rootNode),我只能得到直接孩子的數量(例如在這種情況下爲12),而不是任何孩子數量進一步嵌套(20+)。
我使用JIDE's CheckBoxTree顯示覆選框的嵌套的樹狀結構,在這個例子中:如何計算JTree中的節點數?
我想知道樹模型多少節點包含。
如果我打電話給方法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;
}
非常優雅,輝煌,謝謝。 – Redandwhite
getChildcount應該是getChildCount('Count'的大寫'c') – Blunderchips
遍歷模型和計算:-)如果節點類型DefaultMutableTreeNode的,還有的API做。如果你是(使用SwingX的話)(任何機會:),它都有用於遍歷任意模型的實用方法。否則,請查看代碼並實施自己。 – kleopatra
您必須遞歸檢查並計算所有節點。這種方式,你也可以忽略文件夾節點,如果你想 – moeTi