我有一个JFace Treeviewer(带有基础的SWT Tree)。
树包含多行和多个级别。

我希望能够找到一个特定的树节点(按文本标签比较),展开到其级别并选择项目。

主要问题是我无法遍历TreeItems,因为树以LAZY模式加载所有内容。

也许可以通过搜索模型直接进入树项目?

最佳答案

如果要将树扩展到可能尚未显示的节点,可以使用TreePath告知查看者该节点的完整路径。
就像是:

List<Object> path = new ArrayList<>();

path.add(root element);

... path.add(intermediate elements in tree);

path.add(node element);

TreePath treePath = new TreePath(path.toArray());

viewer.expandToLevel(treePath, 1);


您添加到路径中的“元素”是内容提供者返回的模型对象。

07-26 06:10