gpt4 book ai didi

java 树查看器添加元素

转载 作者:行者123 更新时间:2023-12-01 17:08:49 24 4
gpt4 key购买 nike

基本上我正在使用 Java 中的树查看器(org.eclipse.jface.viewers.TreeViewer)。现在我的问题是,我想向现有结添加一个子元素/项目。

首先我的树看起来像这样:

Knot A
Knot B
Knot C
>child1
>child2

这些子项(child1,child2)不是手动添加的,它们是在我接触树本身之前生成的。

  1. 我创建了树查看器: viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL
    | SWT.V_SCROLL);
  2. 我填充树查看器: viewer.setInput(....elements());它从上面生成状态。

  3. viewer.getTree().getItem(0)返回我的树的正确结 A。

但我无法将新的子节点添加到现有的结中。我尝试了以下方法和其他方法:

TreeItem newItem = new TreeItem(items[0], SWT.NONE); and
viewer.add(items[0], newItem); with a newly created item
viewer.refresh();

理论上,我可以首先操作填充树查看器的 arrayList,但我认为这真的很糟糕。

我真的不知道我现在做错了什么。我想这是一个非常愚蠢的问题。如果是这样的话,那我很抱歉。^^

感谢您的帮助,我很感激您提供的每一个提示。

最佳答案

更新您的“模型”(您提供给 setInput 的数据)是更新树的正确方法。调用 TreeViewer.refresh()TreeViewer.refresh(element) 让树查看器从模型更新树。

当您使用TreeViewer时,您从不创建TreeItem对象——查看器会这样做。您传递给 refreshupdateadd ...方法的所有内容都是模型中的对象,而不是 TreeItems。

关于java 树查看器添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24449892/

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