Java: рекурсивный поиск TreeModel через его поле UserObject? - PullRequest
4 голосов
/ 04 марта 2012

У меня есть Jtree, использующий DefaultTreeModel, каждый отдельный узел содержит UserObject, содержащий различные строковые поля.

Я хотел бы найти и выбрать узел, выполняя рекурсивный обход, пока он не найдет DefaultMutableTreeNode с UserObject, соответствующим одномуиз его полей и программно выберите этот узел.

Есть ли примеры, связанные с поиском по полям UserObject DefaultMutableTreeNode?

1 Ответ

10 голосов
/ 04 марта 2012

DefaultMutableTreeNode имеет deepFirstEnumeration () и breadthFirstEnumeration () . Назовите тот, который вы хотите, итерируйте по перечислению, пока не найдете узел, который имеет UserObject, который вы хотите.

DefaultMutableTreeNode theNode = null;
for (Enumeration e = root.depthFirstEnumeration(); e.hasMoreElements() && theNode == null;) {
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
    if (whatIWantIs(node.getUserObject)) {
        theNode = node;
    }
}
...