gpt4 book ai didi

java - TreeViewer 展开/折叠至级别错误

转载 作者:行者123 更新时间:2023-12-01 12:54:23 26 4
gpt4 key购买 nike

我有一个 TreeViewer,我试图将其项目展开或折叠一级。我的 TreeViewer 包含具有相同名称的项目。例如:

Node 1
-> Node A
-> Node B
-> Node C
Node 2
-> Node A
-> Node B
-> Node C

即使我选择第二个节点 A 展开或折叠,它仍然会展开或折叠第一个节点 A。

我的扩展代码是:

ITreeSelection selection = (ITreeSelection) tree.getSelection();
TreeNode selectedItem = (TreeNode) selection.getFirstElement();
tree.expandToLevel(selectedItem, 1);

我的折叠代码是:

ITreeSelection selection = (ITreeSelection) tree.getSelection();
TreeNode selectedItem = (TreeNode) selection.getFirstElement();
TreeNode[] children = selectedItem.getChildren();
if (children != null) {
for (TreeNode child : children) {
tree.collapseToLevel(child, 1);
}
}

我该怎么做才能让 TreeViewer 展开和折叠正确的所选项目?

最佳答案

您必须确保树中同名的不同对象的 equals 方法不会返回 true。如果 equals 对于两个不同的对象返回 true,树查看器将无法找到正确的树项。与往常一样,您必须使 hashCode 与 equals 实现兼容。

如果您无法修复对象中的 equals 方法,您可以使用 IElementComparer 为树查看器创建特殊比较。使用TreeViewer.setComparer设置树的比较器。

关于java - TreeViewer 展开/折叠至级别错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24007619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com