TreeViewer Java

时间:2017-09-01 09:37:16

标签: java treeview jface

我正在构建RCP应用程序。我正在使用自定义资源管理器。 我使用Treeviewer来获得自定义内容和标签Provider。

我现在的问题是,我无法将子项显示为根对象的子项。

设置如下: 我有一个包含所有子节点的对象(在某个层次结构中)。 我可以把孩子从那个物体中取出但我不能像孩子一样展示它们。我的内容提供商仅将它们显示为根元素。

因此,我的问题是,如何将它们作为孩子挂起来? getElement方法只返回一个对象数组,我不明白如何判断该数组中的对象是父对象还是子对象。

我希望你能帮助我

1 个答案:

答案 0 :(得分:0)

对于TreeViewer,您使用实施ITreeContentProvider的内容提供商。

getElements的{​​{1}}方法只应返回树的顶级元素。

要确定树元素是否有子节点,树查看器将调用内容提供者ITreeContentProvider方法:

hasChildren

此处public boolean hasChildren(Object element) 是树中的现有元素。

要获取元素的子元素,树查看器将调用element方法:

getChildren

提供者返回元素public Object[] getChildren(Object parentElement) 的所有子元素。如果没有子节点返回空数组,则永远不要返回parentElement

有关详细信息,请参阅here