Java 使用路径检查JTree节点是否存在

Java 使用路径检查JTree节点是否存在,java,swing,jtree,Java,Swing,Jtree,我有一个经典的JTree,里面有一些点头。让我们假设树如下所示: Root |-Fruit |--Apple |--Orange |-Objects |--Table |--Car TreeNode found = model.getNodeOrNull("\\Fruit\\Apple") java中是否有任何方法可以使用以下假定路径检查节点是否存在: Root |-Fruit |--Apple |--Orange |-Objects |--Table |--Car TreeNode fo

我有一个经典的JTree,里面有一些点头。让我们假设树如下所示:

Root
|-Fruit
|--Apple
|--Orange
|-Objects
|--Table
|--Car
TreeNode found = model.getNodeOrNull("\\Fruit\\Apple")
java中是否有任何方法可以使用以下假定路径检查节点是否存在:

Root
|-Fruit
|--Apple
|--Orange
|-Objects
|--Table
|--Car
TreeNode found = model.getNodeOrNull("\\Fruit\\Apple")

所以,若给定位置中的节点存在,则返回该节点,若不返回null,则返回该节点?Java中有这样的机制吗?

您可以使用模型的
枚举
实例之一进行搜索,如图所示。

不幸的是,没有现成的机制可以做到这一点。这就对Swing不想强加其设计的节点做出了一些假设,因为这会限制树中节点的含义(即所有节点都有某种唯一标识它们的字符串)。这并不意味着你不能自己轻松地实现它。您可能知道TreePath是JTree中的一个常见概念,因此这里有一个简单的方法,可以将TreePath返回给给定路径的节点:


你可以以此为基础来实现你的目标。

你可以按照这些思路来尝试

示例输出 TreeNodeLocation.java
您是否希望使用toString表示查找与“Apple”匹配的节点?您可以有两个不相等()但具有相同toString()的节点,因此您的方法可能会返回多个匹配项。@guest86不知道您在尝试什么,您必须在XxxTreeModel中迭代,没有其他节点way@trashgod非常正确。这就是我首先扩展树的原因。;)