快速业务通道

Eclipse开发经典教程之TreeViewer组件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

Eclipse开发经典教程之TreeViewer组件

时间:2011-04-11 阿甘

TreeViewer构建步骤

TreeViewer中主要通过内容提供器(ITreeContentProvider)和标签提供器 (ILabelProvider)组织树节点的内容和显示的信息。TreeViewer的构建步骤如下。

1. 创建TreeViewer对象,例如“TreeViewer tv = new TreeViewer(composite);”。

2. 设定内容管理器,例如“tv.setContentProvider(new FileTreeContentProvider()); ”。

3. 设定标签提供器,例如“tv.setLabelProvider(new FileTreeLabelProvider());”。

4. 设定TreeViewer的输入数据,例如“tv.setInput("root");”(用户可以通过输入数 据构建树)。

TreeViewer内容提供器

TreeViewer的内容提供器(ITreeContentProvider)构建树中比较复杂的部分,它为树的 显示提供了内容,内容提供器要实现的方法如下。

1. getElements

此函数定义为“public Object[] getElements(Object inputElement);”,当程序开始 构建树时,首先调用getElements返回一个对象的数组,此数组对象表示当前树的根节点, inputElement参数为TreeViewer的输入(setInput的输入数据)。

2. hasChildren

此函数定义为“public boolean hasChildren(Object element);”,当TreeViewer显示 一个节点后,会调用hasChildren函数判断当前节点是否有子节点,如果有子节点则显示“+ ”,element参数为要判断是否有子节点的节点。

3. getChildren

此函数定义为“public Object[] getChildren(Object parentElement);”,当用户选择 节点打开子节点时,会调用getChildren函数返回下一层子节点,parentElement参数为选择 的节点。

4. getParent

此函数定义为“public Object getParent(Object element);”,可以通过此方法返回 element的父节点。

5. inputChanged

此函数定义为“public void inputChanged(Viewer viewer, Object oldInput, Object newInput);”,当输入改变时调用此方法。

Eclipse开发经典教程之TreeViewer组件(2)

时间:2011-04-11 阿甘

6. dispose

此函数定义为“public void dispose();”,当树销毁时被调用。

其中,getElements、hasChildren和getChildren是常用的方法,用户通过重写这几个方 法构建一棵树,过程如下:通过getElements方法得到根,再通过hasChildren判断根下是否 有子节点,如果有子节点,可以通过getChildren得到所有的子节点。如例程1为 ITreeContentProvider接口的一个简单实现。

例程1 FileTreeContentProvider.java

class FileTreeContentProvider implements ITreeContentProvider { public Object[] getChildren(Object arg0) { //返回树的下一级节点 return ((File) arg0).listFiles(); } public Object getParent(Object arg0) { //返回树的上一级节点 return ((File) arg0).getParentFile(); } public boolean hasChildren(Object arg0) { Object[] obj = getChildren(arg0); //判断树是否有下一级节点,true为在节点显示"+"信息 return obj == null ? false : obj.length > 0; } public Object[] getElements(Object arg0) { //打印出树的输入信息,通常用户可以通过输入信息构建树 System.out.println(arg0); // File.listRoots()作为树的根节点 return File.listRoots(); }

上例内容提供器通过文件系统获得树的输入内容,从而使用户构造的树能显示磁盘文件的 树结构。

在TreeViewer中,通过标签提供器(ILabelProvider)来显示节点的相关信息,包括显示 内容和图标。

ILabelProvider主要实现getImage和ge

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号