快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
eLabelProvider implements ILabelProvider { private List listeners; private Image file; private Image dir; boolean preserveCase; public FileTreeLabelProvider() { listeners = new ArrayList(); try { //添加文件和目录的图标 file = new Image(null, new FileInputStream("icons/file.gif")); dir = new Image(null, new FileInputStream("icons/directory.gif")); } catch (FileNotFoundException e) { } } public void setPreserveCase(boolean preserveCase) { this.preserveCase = preserveCase; //触发事件,重新得到显示标签 LabelProviderChangedEvent event = new LabelProviderChangedEvent(this); for (int i = 0, n = listeners.size(); i < n; i++) { ILabelProviderListener ilpl = (ILabelProviderListener) listeners .get(i); ilpl.labelProviderChanged(event); } } public Image getImage(Object arg0) { //返回目录或文件的图标 return ((File) arg0).isDirectory() ? dir : file; } public String getText(Object arg0) { String text = ((File) arg0).getName(); if (text.length() == 0) { text = ((File) arg0).getPath(); } //返回目录或文件的文件名 return preserveCase ? text : text.toUpperCase(); } public void addListener(ILabelProviderListener arg0) { //添加监听器 listeners.add(arg0); } public void dispose() { if (dir != null) dir.dispose(); if (file != null) file.dispose(); } public boolean isLabelProperty(Object arg0, String arg1) { return false; } public void removeListener(ILabelProviderListener arg0) { //删除监听器 listeners.remove(arg0); } }

以上代码中,在主窗口上添加了TreeViewer组件,在树中显示当前磁盘和文件结构。另外 可以通过“Preserve case”复选按钮选择是为原有显示文本还是全部大写显示文本,程序运 行效果如图1所示。

图1 TreeViewer组件

TreeViewer的功能比较强大,在复杂的应用可以用它代替SWT的Tree组件,实现树的完美 展现。

上例中文件“icons/file.gif”和目录“icons/directory.gif”的图片没有加入,读者 可以加入相应的显示图片,图片的位置为相对于当前工程根目录的相对路径。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号