java - 在 SWT 树中查找特定项目

标签 java eclipse swt jface

我有一个 JFace Treeviewer(带有底层 SWT Tree)。
树包含多行和多层次。

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

主要问题是我无法遍历 TreeItems,因为 tree 在 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);

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

关于java - 在 SWT 树中查找特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30466119/

相关文章:

java - 质数计算的最短代码

java - Java 对象存储的范围和对象的正确实现

java - 让 log4j2 与 eclipse 一起工作

android - 无法初始化 Git 团队提供程序

java - SWT 文本字段从右到左的外观

tree - SWT JFace : How to implement a "leveled or expandable TableViewer"?

java - SWT单线程问题

java - 为缓存构建一个对象, "asynchronously"(有点),用Java : howto?

java - 4K 屏幕上的 Netbeans 缩放

java - 随机化井字