2012-03-04 55 views
4

我有一個使用DefaultTreeModel的Jtree,每個單獨的節點包含一個包含各種字符串字段的UserObject。Java:通過它的UserObject字段遞歸搜索TreeModel?

我想通過遞歸遍歷來找到並選擇一個節點,直到它找到DefaultMutableTreeNode並且UserObject匹配它的一個字段並以編程方式選擇該節點。

是否有涉及通過DefaultMutableTreeNode的UserObject字段搜索的任何示例?

回答

10

DefaultMutableTreeNode有depthFirstEnumeration()breadthFirstEnumeration()。調用你想要的那個,遍歷枚舉,直到你找到了你想要的UserObject的節點。

DefaultMutableTreeNode theNode = null; 
for (Enumeration e = root.depthFirstEnumeration(); e.hasMoreElements() && theNode == null;) { 
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement(); 
    if (whatIWantIs(node.getUserObject)) { 
     theNode = node; 
    } 
} 
+0

這幫了我很多!並且工作得很好!但請添加應該是這樣的root的定義:myTreeModel.getRoot() – behzad 2015-05-17 17:11:31