Поиск рекурсии в JTree Search - PullRequest
       13

Поиск рекурсии в JTree Search

1 голос
/ 12 октября 2011

Я новичок в использовании 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;
}

Точнее, результаты поиска появляются дважды.Что я делаю не так ???

1 Ответ

0 голосов
/ 12 октября 2011

Итак, я понял, что я как бы лишен сна, и понял, что метод был вызван дважды при первоначальном создании дерева. Не знаю, почему этот метод был вызван дважды. Но я немного подправил код, и все вернулось на круги своя.

...