问题
I have a Jtree using DefaultTreeModel, each individual node contains a UserObject containing various string fields.
I would like to find and select a node by doing a recursive traversal until it finds the DefaultMutableTreeNode with UserObject matching one of it's fields and programmatically select that node.
Are there any examples involving searching via DefaultMutableTreeNode's UserObject fields?
回答1:
DefaultMutableTreeNode has depthFirstEnumeration() and breadthFirstEnumeration(). Call the one you desire, iterate through the enumeration until you find the node that has the UserObject
you want.
DefaultMutableTreeNode theNode = null;
for (Enumeration e = root.depthFirstEnumeration(); e.hasMoreElements() && theNode == null;) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
if (whatIWantIs(node.getUserObject)) {
theNode = node;
}
}
来源:https://stackoverflow.com/questions/9557186/java-recursive-search-of-treemodel-via-its-userobject-field