如何在给定字符串数组的情况下获取特定的JTree节点

use*_*643 0 java arrays string swing jtree

如果我有String[]这样一个{ "root", "two", "1" }如何DefaultMutableTreeNodeJTree这个"路径"代表我的那个?

例如,如果我的JTree看起来像这样:

root
 one
  1
  2
 two
  1   <-- I want this node
  2
Run Code Online (Sandbox Code Playgroud)

假设所有节点都是DefaultMutableTreeNodes.

Jak*_*rka 5

首先,您需要使用getModel()方法获取树模型.一旦你有了模型,它就有了getRoot()获取树根的方法.之后,您可以跟随调用getChild(Object parent, int index)并检查是否有任何子项与String数组中提供的名称相同.如果找到这样的,你可以再次调用getChild(Object parent, int index),等等......直到你到达阵列中的最后一个String.然后你有相应的树节点.您需要实际将树节点强制转换为DefaultMutableTreeNode,因为TreeModel使用Object作为树元素(对于1.7之前的Java).