JTree搜索不搜索未展开的节点 public final DefaultMutableTreeNode findNode(String searchString){ java.util.List searchNodes=getSearchNodes((D
JTree搜索不搜索未展开的节点JTree搜索不搜索未展开的节点 public final DefaultMutableTreeNode findNode(String searchString){ java.util.List searchNodes=getSearchNodes((D,java,swing,search,jtree,Java,Swing,Search,Jtree,JTree搜索不搜索未展开的节点 public final DefaultMutableTreeNode findNode(String searchString){ java.util.List searchNodes=getSearchNodes((DefaultMutableTreeNode)deviceTreeView.getModel().getRoot()); DefaultMutableTreeNode currentNode=(DefaultMutableTreeNode)dev
public final DefaultMutableTreeNode findNode(String searchString){
java.util.List searchNodes=getSearchNodes((DefaultMutableTreeNode)deviceTreeView.getModel().getRoot());
DefaultMutableTreeNode currentNode=(DefaultMutableTreeNode)deviceTreeView.getLastSelectedPathComponent();
DefaultMutableTreeNode foundNode=null;
int bookmark=-1;
if(currentNode!=null){
对于(int index=0;index 对于(int index=0;索引是父节点展开时动态生成的子节点吗?查看节点是如何创建的将非常有用-对于“静态”生成的树(深度4),发布的代码似乎运行良好。
public final DefaultMutableTreeNode findNode(String searchString) {
java.util.List<DefaultMutableTreeNode> searchNodes = getSearchNodes((DefaultMutableTreeNode)deviceTreeView.getModel().getRoot());
DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)deviceTreeView.getLastSelectedPathComponent();
DefaultMutableTreeNode foundNode = null;
int bookmark = -1;
if( currentNode != null ) {
for(int index = 0; index < searchNodes.size(); index++) {
if( searchNodes.get(index) == currentNode ) {
bookmark = index;
break;
}
}
}
for(int index = bookmark + 1; index < searchNodes.size(); index++) {
if(searchNodes.get(index).toString().toLowerCase().contains(searchString.toLowerCase())) {
foundNode = searchNodes.get(index);
break;
}
}
if( foundNode == null ) {
for(int index = 0; index <= bookmark; index++) {
if(searchNodes.get(index).toString().toLowerCase().contains(searchString.toLowerCase())) {
foundNode = searchNodes.get(index);
break;
}
}
}
return foundNode;
}
private final java.util.List<DefaultMutableTreeNode> getSearchNodes(DefaultMutableTreeNode root) {
java.util.List<DefaultMutableTreeNode> searchNodes = new java.util.ArrayList<DefaultMutableTreeNode>();
java.util.Enumeration<?> e = root.preorderEnumeration();
while(e.hasMoreElements()) {
searchNodes.add((DefaultMutableTreeNode)e.nextElement());
}
return searchNodes;
}