Я новичок в использовании 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;
}
Точнее, результаты поиска появляются дважды.Что я делаю не так ???