2012-03-04 52 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