我是使用JTree的新手,所以如果我忽略了一些非常基本的东西,请耐心等待。我正在研究一个Jtree文件资源管理器。它需要一个目录,添加节点,选择节点和所有好东西。基础知识已经完成。额外的实现包括给出所选节点的文件/文件夹大小,这非常简单。但问题在于试图搜索树。它识别该文件存在。但由于某种原因,递归正在重演?并且价值没有正确返回。我已经将这两种方法包括在内以供参考。如果有与此相关的阅读,也将非常感激。
public void searchTree(String find)
{
TreePath root = tree.getPathForRow(0);
System.out.println(search (root, find));
}
public String search (TreePath path, String find)
{
TreeNode currentNode = (TreeNode)path.getLastPathComponent();
String findPath = null;
if (currentNode.isLeaf() && currentNode.toString().startsWith(find))
{
findPath = path.getPath()[path.getPath().length-2].toString() + File.separator + path.getPath()[path.getPath().length-1].toString();
return findPath;
}
if (!currentNode.isLeaf() && currentNode.getChildCount()> 0)
for (int i = 0; i < currentNode.getChildCount(); i++)
search(path.pathByAddingChild(currentNode.getChildAt(i)), find);
return findPath;
}
更确切地说,搜索输出出现两次。我做错了什么???
答案 0 :(得分:0)
所以我意识到我有点睡眠被剥夺,并意识到该方法是由树的初始创建调用两次。不知道为什么这个方法被调用了两次。但我稍微调整了一下代码,事情又恢复了正常。