`

TreeViewer 使用

阅读更多

import java.io.File;

import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
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.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;

public class TreeColumnTest2 extends Shell {

 private Tree tree;
 /**
  * Launch the application
  * @param args
  */
 public static void main(String args[]) {
  try {
   Display display = Display.getDefault();
   TreeColumnTest2 shell = new TreeColumnTest2(display, SWT.SHELL_TRIM);
   shell.open();
   shell.layout();
   while (!shell.isDisposed()) {
    if (!display.readAndDispatch())
     display.sleep();
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 /**
  * Create the shell
  * @param display
  * @param style
  */
 public TreeColumnTest2(Display display, int style) {
  super(display, style);
  createContents();
 }

 /**
  * Create contents of the window
  */
 protected void createContents() {
  setText("SWT Application");
  setSize(584, 375);

  final TreeViewer viewer = new TreeViewer(this, SWT.FULL_SELECTION);
  tree = viewer.getTree();
  tree.setBounds(24, 10, 523, 300);
  viewer.getTree().setHeaderVisible(true);
  TreeColumn column = new TreeColumn(viewer.getTree(), SWT.LEFT);
  column.setText("Name");
  column.setWidth(200);
  column = new TreeColumn(viewer.getTree(), SWT.LEFT);
  column.setText("Size");
  column.setWidth(100);
  column = new TreeColumn(viewer.getTree(), SWT.LEFT);
  column.setText("Hidden");
  column.setWidth(100);
  viewer.setContentProvider(new MyTreeContenetProvider());
  viewer.setLabelProvider(new MyTableLableProvider());
  viewer.setInput(new File("/"));

  //
 }

 @Override
 protected void checkSubclass() {
  // Disable the check that prevents subclassing of SWT components
 }

 class MyTreeContenetProvider implements ITreeContentProvider {

  public Object[] getChildren(Object parentElement) {
   File file = (File) parentElement;
   if (file.isDirectory())
    return file.listFiles();
   else
    return null;
  }

  public Object getParent(Object element) {
   System.err.println("调用没");
   File file = (File) element;
//   return file.getParentFile();
   return null;
  }

  public boolean hasChildren(Object element) {
   File file = (File) element;
   return file.isDirectory()/*&&file.list().length>0*/;
  }

  public Object[] getElements(Object inputElement) {
   File file = (File) inputElement;
   return file.isDirectory() ? file.listFiles()
     : new Object[] { file };
  }

  public void dispose() {

  }

  public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

  }

 }

    class MyTableLableProvider implements ITableLabelProvider{

         public Image getColumnImage(Object element, int columnIndex) {
             return null;
          }

         public String getColumnText(Object element, int columnIndex) {
              File file=(File)element;
             switch (columnIndex) {
             case 0:
                 return file.getName();
             case 1:
                 return ""+file.length();
             case 2:
                 return ""+file.isHidden();
             default:
                 return "";
              }
          }

         public void addListener(ILabelProviderListener listener) {
            
          }

         public void dispose() {
            
          }

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

         public void removeListener(ILabelProviderListener listener) {
            
          }
        
      }

}

分享到:
评论

相关推荐

    SWT TreeViewer实例

    本实例将深入探讨如何使用SWT TreeViewer来构建一个简单的树形视图。 首先,我们需要了解SWT TreeViewer的基本概念。TreeViewer是SWT中的一个类,它封装了JFace Data Binding的支持,使得我们能够更方便地绑定数据...

    Eclipse开发经典教程-TreeViewer组件

    ### Eclipse开发经典教程:深入解析TreeViewer组件 在Eclipse平台的GUI开发中,`TreeViewer`组件扮演着至关重要的角色,特别是在展示层次结构数据时。`TreeViewer`不仅能够直观地呈现树形结构的数据,还支持丰富的...

    Treeviewer1.0

    【Treeviewer1.0】是一款基于Python 3.4编程语言、PyQt5图形界面库以及Matplotlib数据可视化库的决策树查看工具。这个工具专为解析和展示微软的决策树模型而设计,使得用户能够直观地理解并分析决策树模型的结果。...

    XML TreeViewer

    XML TreeViewer是一款专为XML开发人员设计的实用工具,它以树形结构展示XML文档...在实际工作中,熟练使用此类工具可以显著提高XML文档的处理效率,特别是在处理大型、复杂的XML文件时,能有效地提升开发和调试的效率。

    TreeViewer:使用 D3.js 的交互式进化树查看器

    #TreeViewer 交互式进化树可视化 此 Web 服务旨在提供完全交互式的进化树查看器。 该项目仍处于重开发阶段,可能会频繁出现大规模更改。 要测试 TreeViewer 的基本版本,请单击。 依赖项包括 D3.js、Bootstrap 和 ...

    treeviewer

    是一款针对后缀名为.tre .tree .nwk 等树文件的打开及编辑软件

    swt Tree 例子项目代码

    在给定的项目中,我们可以期待看到如何初始化`Tree`控件,如何创建和管理`TreeItem`,以及如何使用`TreeViewer`和`LabelProvider`来展示数据。这个项目可能还涉及了事件监听,以便在用户交互时响应,比如节点的点击...

    SWT控件2

    【标题】"SWT控件2"涉及到的是Java编程领域中的一个特定话题,特别是使用SWT(Standard Widget Toolkit)库创建图形用户界面GUI时的一种组件——TreeViewer。SWT是Eclipse项目的一部分,它提供了一个原生的GUI工具包...

    eclipse从入门到精通的treexiew代码

    在本文中,我们将深入探讨Eclipse IDE中的TreeViewer组件,它是Java SWT(Standard Widget Toolkit)...通过实践和调试`treeviewer`代码,您将能深入理解如何在实际项目中有效地使用TreeViewer,从而实现从入门到精通。

    DataGrid Treeview Drag and drop

    在.NET开发环境中,数据展示控件DataGrid和TreeViewer是常用的数据可视化工具。"DataGrid Treeview Drag and drop"这个主题关注的是如何在C#中实现这两个控件之间的拖放功能,但仅支持从DataGrid到TreeViewer的单向...

    rcp treeview的相关资料

    然后,通过调用`new TreeViewer(composite)`来实例化TreeViewer对象。接下来,你可以设置TreeViewer的各种属性,如它的列、其列的标题和数据类型,以及是否允许用户编辑等。 2. **内容提供者(ContentProvider)** ...

    Eclipse下SWT图形界面开发指南(1)

    从简单的“Hello, World”示例开始,逐步深入到使用 JFace 创建复杂窗口,以及如何使用 `TreeViewer` 和 `TableViewer` 显示各种类型的数据。这些基础知识为后续文章中的更高级主题奠定了基础。 #### 相关资源 - ...

    CheckboxTreeViewer

    "TreeViewer"再次强调了这是基于TreeViewer的扩展组件。 至于【压缩包子文件的文件名称列表】:FileTreeView,这可能是实现CheckboxTreeViewer功能的一个示例或者测试项目。这个文件可能包含了一个简单的Java应用,...

    RCP资料 filterTreeViewer

    总之,"RCP资料 filterTreeViewer"这个主题涵盖的是Eclipse RCP应用中使用过滤功能的TreeViewer组件,这涉及到数据模型、用户交互以及过滤逻辑的实现。理解和掌握这些知识对于开发功能丰富的Eclipse RCP应用程序至关...

    RCP实现的带有复选框的Tree

    为了在TreeViewer中添加复选框功能,我们需要使用CheckboxTreeViewer类,这是TreeViewer的一个扩展,专门为包含复选框的树节点而设计。 实现步骤如下: 1. **创建CheckboxTreeViewer实例**:首先,你需要在你的...

    HDFView_UsersGuide.pdf

    HDFView是一款用于查看和编辑HDF4和HDF5文件内容的图形化工具,本指南文档主要提供了HDFView的用户使用说明和HDF对象模型的简要介绍。 首先,HDFView可以用于查看和编辑HDF4和HDF5文件内容,这包括打开文件、查看...

    jface treeView 的sample

    在这个名为“jface treeView 的sample”的例子中,我们将深入探讨如何使用jFace来实现一个功能完备的TreeView。 首先,让我们了解`TreeView`的基本用法。在jFace中,`TreeView`是通过`org.eclipse.jface.viewers....

    eclipse 集成 JSON2XML Tree Viewer

    Eclipse是一款广泛使用的集成开发环境(IDE),为开发者提供了丰富的插件支持,使得这样的转换变得轻松便捷。本篇文章将详细介绍如何在Eclipse中集成JSON2XML Tree Viewer插件,以及如何利用它将JSON文本转换为XML和...

Global site tag (gtag.js) - Google Analytics