快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
tText函数。当TreeViewer得到一个节点后会通过 getText得到此节点的显示文本,通过getImage方法得到节点的显示图标,代码如例程2所示 。

例程2 ViewLabelProvider.java

class ViewLabelProvider extends ILabelProvider{ … public String getText(Object obj) { return obj.toString(); } public Image getImage(Object obj) { String imageKey = ISharedImages.IMG_OBJ_ELEMENT; if (obj instanceof TreeParent) imageKey = ISharedImages.IMG_OBJ_FOLDER; return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey); } … }

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

时间:2011-04-11 阿甘

TreeViewer实例

在TreeViewer实例中,一般还要定义树节点的结构。本例中的File对象就能够表示节点的 父子关系,代码如例程3所示。

例程3 FileBrowserTreeViewer.java

/** * 为了节省篇幅,把所有的import类注释了 * 读者可以通过ctrl+shift+o快捷键,自动引入所依赖的类 * */ public class FileBrowserTreeViewer extends ApplicationWindow { public FileBrowserTreeViewer() { super(null); } public void run() { setBlockOnOpen(true); open(); Display.getCurrent().dispose(); } protected void configureShell(Shell shell) { super.configureShell(shell); shell.setText("File Tree"); shell.setSize(400, 400); } protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); // 父容器分一列显示 composite.setLayout(new GridLayout(1, false)); Button preserveCase = new Button(composite, SWT.CHECK); preserveCase.setText("&Preserve case"); final TreeViewer tv = new TreeViewer(composite); // 让树组件两端对齐 tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); // 添加内容管理器 tv.setContentProvider(new FileTreeContentProvider()); // 添加标签管理器 tv.setLabelProvider(new FileTreeLabelProvider()); // 设置treeviewer的输入 tv.setInput("root"); // pass a non-null that will be ignored preserveCase.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { boolean preserveCase = ((Button) event.widget).getSelection(); FileTreeLabelProvider ftlp = (FileTreeLabelProvider) tv .getLabelProvider(); ftlp.setPreserveCase(preserveCase); } }); return composite; } public static void main(String[] args) { new FileBrowserTreeViewer().run(); } } //定义内容提供器 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(); } public void dispose() { } public void inputChanged(Viewer arg0, Object arg1, Object arg2) { } } //定义标签提供器 class FileTre

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