欢迎来到天天文库
浏览记录
ID:52786460
大小:88.96 KB
页数:11页
时间:2020-03-30
《Eclipse开发经典教程:TreeViewer组件.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Eclipse开发经典教程:TreeViewer组件TreeViewer构建步骤TreeViewer中主要通过内容提供器(ITreeContentProvider)和标签提供器(ILabelProvider)组织树节点的内容和显示的信息。TreeViewer的构建步骤如下。1.创建TreeViewer对象,例如“TreeViewertv=newTreeViewer(composite);”。2.设定内容管理器,例如“tv.setContentProvider(newFileTreeContentProvider());”。3
2、.设定标签提供器,例如“tv.setLabelProvider(newFileTreeLabelProvider());”。4.设定TreeViewer的输入数据,例如“tv.setInput("root");”(用户可以通过输入数据构建树)。TreeViewer内容提供器TreeViewer的内容提供器(ITreeContentProvider)构建树中比较复杂的部分,它为树的显示提供了内容,内容提供器要实现的方法如下。1.getElements此函数定义为“publicObject[]getElements(Object
3、inputElement);”,当程序开始构建树时,首先调用getElements返回一个对象的数组,此数组对象表示当前树的根节点,inputElement参数为TreeViewer的输入(setInput的输入数据)。2.hasChildren此函数定义为“publicbooleanhasChildren(Objectelement);”,当TreeViewer显示一个节点后,会调用hasChildren函数判断当前节点是否有子节点,如果有子节点则显示“+”,element参数为要判断是否有子节点的节点。3.getChil
4、dren此函数定义为“publicObject[]getChildren(ObjectparentElement);”,当用户选择节点打开子节点时,会调用getChildren函数返回下一层子节点,parentElement参数为选择的节点。4.getParent此函数定义为“publicObjectgetParent(Objectelement);”,可以通过此方法返回element的父节点。5.inputChanged此函数定义为“publicvoidinputChanged(Viewerviewer,Objectold
5、Input,ObjectnewInput);”,当输入改变时调用此方法。6.dispose此函数定义为“publicvoiddispose();”,当树销毁时被调用。其中,getElements、hasChildren和getChildren是常用的方法,用户通过重写这几个方法构建一棵树,过程如下:通过getElements方法得到根,再通过hasChildren判断根下是否有子节点,如果有子节点,可以通过getChildren得到所有的子节点。如例程1为ITreeContentProvider接口的一个简单实现。例程1Fi
6、leTreeContentProvider.javaclassFileTreeContentProviderimplementsITreeContentProvider{publicObject[]getChildren(Objectarg0){//返回树的下一级节点return((File)arg0).listFiles();}publicObjectgetParent(Objectarg0){//返回树的上一级节点return((File)arg0).getParentFile();}publicbooleanhasCh
7、ildren(Objectarg0){Object[]obj=getChildren(arg0);//判断树是否有下一级节点,true为在节点显示"+"信息returnobj==null?false:obj.length>0;}publicObject[]getElements(Objectarg0){//打印出树的输入信息,通常用户可以通过输入信息构建树System.out.println(arg0);//File.listRoots()作为树的根节点returnFile.listRoots();}上例内容提供器通过文件系
8、统获得树的输入内容,从而使用户构造的树能显示磁盘文件的树结构。在TreeViewer中,通过标签提供器(ILabelProvider)来显示节点的相关信息,包括显示内容和图标。ILabelProvider主要实现getImage和getText函数。当TreeViewer得到一个节点后会通
此文档下载收益归作者所有