`
czjxdm
  • 浏览: 124612 次
社区版块
存档分类
最新评论

TreeView 树

阅读更多
treeview树的实现


package com.huawei.test;

import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class TreeViewTest {
public static void main(String[] args) {
TreeViewTest window = new TreeViewTest();
window.open();
}

public void open() {
final Display display = new Display();
final Shell shell = new Shell();
shell.setLayout(new FillLayout());
ui(shell);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}

private void ui(Shell shell) {
Composite c = new Composite(shell, SWT.NONE);
c.setLayout(new FillLayout());
TreeViewer tv = new TreeViewer(c, SWT.BORDER);
tv.setContentProvider(new MyContentProvider());
tv.setLabelProvider(new MyLableProvider());
tv.setInput(new Object());// 设置输入对象的方法与前面相同
}

/**
* 内容提供器。由它决定那些对象应该输出在TreeViewer里显示
*/
private static final class MyContentProvider implements
ITreeContentProvider {
/**
* 由这个方法决定树的顶级显示那些对象。在此方法里生成了三个Country对象
*
* @param inputElement
*            用tv.setInput()方法输入的那个对象,在这里没有使用这个对象
*/
public Object[] getElements(Object inputElement) {
String[] obj = new String[3];
obj[0] = "中国";
obj[1] = "美国";
obj[2] = "英国";
return obj;
}

/**
* 由这个方法决定结点应该显示那些子结点。在这里也不管父结点是什么,每个结点都统一有三个字结点
*
* @param parentElement被点击的结点
*            (父结点)
*/
public Object[] getChildren(Object parentElement) {
String[] obj = new String[4];
obj[0] = "桂林";
obj[1] = "北京";
obj[2] = "纽约";
obj[3] = "伦敦";
return obj;
}

/**
* 判断某结点是否有子结点。在这里不管3721,全返回真,即都有子结点。这时结点前都有一个“+”号图标
*
* @param element
*            需要判断是否有子的结点
*/
public boolean hasChildren(Object element) {
return true;
}

/**
* 取得某结点的父结点。极少需要实现此方法
*/
public Object getParent(Object element) {
return null;
}

/**
* 当TreeViewer被销毁时将执行这个方法。极少需要实现此方法
*/
public void dispose() {
}

/**
* 当tv.setInput()发生变化时调用此方法。极少需要实现此方法
*/
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
}

/**
* 标签提供器。主要负责每一单个对象在TreeViewer中的显示(文字、图象)
*/
private static final class MyLableProvider implements ILabelProvider {
/**
* 显示什么图片
*
* @param 结点
* @return 可以为null值
*/
public Image getImage(Object element) {
// ISharedImages sharedImages =
// PlatformUI.getWorkbench().getSharedImages();
// return sharedImages.getImage(ISharedImages.IMG_OBJS_WARN_TSK);
return null;
}

/**
* 显示什么文字
*
* @param 结点
* @return 不能为null值
*/
public String getText(Object element) {
return (String) element;
}

public void addListener(ILabelProviderListener listener) {
}

public void dispose() {
}

public boolean isLabelProperty(Object element, String property) {
return false;
}

public void removeListener(ILabelProviderListener listener) {
}
}
/**
* 标签提供器。如果你赚上面的MyLableProvider那些没用的方法碍眼,
* Eclipse中有一个ILabelProvider的缺省实现LabelProvider,继承它也行
*/
// private static final class MyLableProvider extends LabelProvider {
// public String getText(Object element) {
// return (String)element;
// }
// }
}
分享到:
评论

相关推荐

    VB TreeView树形菜单(自定义展开菜单).rar

    VB6.0 自定义TreeView树形菜单(展开菜单),类似于实现多级菜单、展开菜单的功能,当然也可当作Tree树控菜单来使用。最终的功能预览图请参见测试截图所示。  Set a = TreeView1.Nodes.Add(, etvwFirst, 1, "第一个...

    TreeView树控件全攻略

    《TreeView树控件全攻略》是一份面向广大编程爱好者,特别是VC、VB、VFP、SQL程序员的重要参考资料。它深入浅出地介绍了TreeView控件的各个方面,帮助开发者更好地理解和运用这个常用的图形用户界面元素。 首先,...

    treeView树形控件

    综上所述,这个特定的“treeView树形控件”不仅能够有效地展示和管理层次结构数据,还通过滑动浏览和选择功能提升了用户交互体验,对于开发高效、友好的应用程序至关重要。在实际项目中,可以根据具体需求定制和扩展...

    Delphi Treeview树形菜单视图源码.rar

    Delphi Treeview树形菜单视图源码,通过数据库读取到资料,然后绑定显示到TreeView中,通过多组数据的比较,可以看出不同方式之间速度的差异,一般情况下我们都是在使用时才打开树状菜单,才开始加载数据。...

    JQ TreeView树视图

    在给定的“JQ TreeView树视图”主题中,我们将探讨如何使用jQuery来创建一个动态加载数据的TreeView组件。 首先,`TreeView`是一种将层次结构数据以树状结构展示的UI元素,它常用于网站和应用中以展示目录结构、...

    VB中Treeview 树形菜单节点拖动、增加、删除实例

    在VB(Visual Basic)编程中,`TreeView`控件是一个常用元素,用于创建层次结构的显示,类似于Windows资源管理器中的文件系统结构。本实例主要关注`TreeView`控件的节点操作,包括拖动、增加和删除节点。下面将详细...

    treeview 树形列表

    在IT界,尤其是在GUI(图形用户界面)设计中,`TreeView`控件是一个常见的元素,它用于展示数据的层次结构,通常以树形的方式呈现。这个控件允许用户通过节点的展开和折叠来查看和操作多级数据。下面将详细阐述`...

    bootstrap-treeview树节点实现动态加载(懒加载)

    Bootstrap Treeview是一款基于Bootstrap框架的交互式树形视图组件,它使得在Web应用中展示层级数据变得简单直观。在官方版本中,虽然提供了丰富的功能,但并未直接支持动态加载或懒加载。动态加载(也称为懒加载)是...

    递归显示TreeView树形图

    本示例将深入讲解如何利用递归方法来动态地填充和显示TreeView树形图。 递归是一种编程技术,它通过调用自身来解决问题或执行任务。在填充TreeView时,递归尤其有用,因为树形结构通常具有层级关系,每一层都可以...

    bootstraptable-treeview树形,树形空格缩进bug已解决

    在本文中,我们将深入探讨 "bootstraptable-treeview",这是一个用于在 BootstrapTable 中实现树形结构的扩展。当我们处理树形数据时,正确地显示层次和缩进是非常重要的,因为它直接影响到用户对数据结构的理解和...

    一款自写的VB可分级的TreeView树形控件

    标题中的“一款自写的VB可分级的TreeView树形控件”指的是使用Visual Basic(VB)编程语言开发的一个自定义控件,它实现了类似Windows Explorer中常见的TreeView控件的功能,能够展示分层的数据结构。在Windows应用...

    NET treeview树使用

    "NET treeview树 数据的添加 修改 使用"这个主题涵盖了如何创建、编辑和操作TreeView控件的核心概念。 1. **创建TreeView控件** 创建TreeView控件首先需要在你的Windows Forms或ASP.NET应用中添加控件。在Visual ...

    一个相当不错的Delphi TreeView树控菜单.rar

    一个Delphi编写的相当不错的TreeView树控菜单,类似于Windows资源管理器中的树状菜单。  ParentFolder: IShellFolder; // 节点对应的文件夹的父文件夹的IShellFolder接口  Pidl, FullPidl: PItemIDList;// 节点...

    Delphi结合数据库生成Treeview树控菜单视图类.rar

    Delphi树形菜单类以及例子,结合数据库生成Treeview树控菜单视图,你可了解下如何按照节点在数据库中的编号查找节点、如何查找节点在数据库中的数据、填充节点等。这个类通过数据库中的数据自动添加到Treeview控件中...

    TreeView树空间资源管理器

    【TreeView树空间资源管理器】是一个使用树形控件实现的简单资源管理器应用程序,它在Visual Studio环境下开发,能够方便地展示文件系统结构。这个项目的核心在于`TreeView`控件,它是Windows Forms或WPF应用程序中...

    jquery treeview树控件.zip

    《jQuery Treeview 树形控件深度解析及应用实践》 jQuery Treeview 是一个流行的 jQuery 插件,它为网页提供了强大的树形视图功能。这个插件在 "JS特效-其它代码" 领域中广泛应用,尤其适用于构建层次结构清晰、...

    vb里treeview树数结构讲解

    ### vb里treeview树数结构讲解 #### 知识点概览 本篇文章主要围绕着`treeview`控件在Visual Basic(简称VB)环境中的使用展开,重点介绍了如何在Access环境中设置`treeview`控件以及与之相关的`imagelist`控件,并...

    C#TreeView树形源码.rar

    这个压缩包“C#TreeView树形源码.rar”提供了一个C# WinForms环境下实现的`TreeView`控件的源代码,包含了全选、单选功能,并且被封装为一个用户控件,使得开发者可以更方便地在自己的应用中使用。 首先,让我们...

    C#2008利用TreeView树控菜单浏览图像

    在“C#2008利用TreeView树控菜单浏览图像”示例中,你可能会看到如何将图像与节点关联。这可以通过设置`TreeNode`的`ImageIndex`和`SelectedImageIndex`属性实现。首先,你需要将图像加载到`TreeView`的`ImageList`...

Global site tag (gtag.js) - Google Analytics