Java: получить второго по величине предка потомка триода - PullRequest
0 голосов
/ 06 марта 2012

Использование DefaultTreeModel, defaultmutbletreenode getRoot() возвращает его наивысшего предка, но как бы вы пошли на одно поколение вниз, чтобы вернуть своего второго наивысшего предка?

root
 - ancestor 1
  - some parent
   - some child
 - ancestor 2
  - some parent
   - another parent
    - some child

так, как найти ancestor 1, учитывая some child в этой ветви, глубина каждой ветви отличается для каждого узла ancestor в root.

Мне нужно пройти до ancestor 1 от some child, а также для более глубокой ветви, учитывая some child, он найдет ancestor 2.

1 Ответ

0 голосов
/ 06 марта 2012

Попробуйте это:

TreeNode[] nodeArray = tree.getPathToRoot(nodeInQuestion);
TreeNode secondFromRoot;

if ((nodeArray != null) && // I'm not sure this can actually happen.
    (nodeArray.length > 1)) // current node is not the root node.
{
   secondFromRoot = nodeArray[1];
}
else
{
   ... decide what makes sense here.
}
...