java treeviewer添加元素

0 java treeview jface treeviewer

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

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

Knot A
Knot B
Knot C
 >child1
 >child2
Run Code Online (Sandbox Code Playgroud)

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

  1. 我创建了treeviewer: viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
  2. 我填充了treeviewer: 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,它首先会填充treeviewer,但是我认为那真的很糟糕。

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

感谢您的帮助,对于您能提供的每一个提示,我深表感谢。

gre*_*449 5

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

使用时,TreeViewer永远不会创建TreeItem对象-查看器会这样做。你传递给一切refreshupdateadd...方法是从你的模型不TreeItems对象。