`
jjxliu306
  • 浏览: 157721 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

RCP中可勾选的tableview CheckboxTableViewer

 
阅读更多

在RCP的开发中,我们经常需要在table中让用户去选则某些行来进行某些操作,在tableview中我们可以在style中设置SWT.CHECK,但在管理上往往不是很方便,这里对CheckboxTableViewer来进行简单介绍和使用说明:

 

首先我们先创建table:

//先创建表 注意style中要包含 SWT.CHECK
  Table table = new Table(parent, SWT.CHECK|SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER|SWT.V_SCROLL|SWT.H_SCROLL);
  table.setLayoutData(new GridData(GridData.FILL_BOTH));
  //设置表头
  String[] tableCols = {"ID" , "姓名" , "性别" , "电话"};
  
  for(String colStr : tableCols) {
   TableColumn tc = new TableColumn(table, SWT.LEFT); //靠左
   tc.setText(colStr);
   tc.setWidth(70);
  }
  //设置line 和header显示
  table.setLinesVisible(true);
  table.setHeaderVisible(true);

 

然后在table上我们初始化 CheckboxTableViewer:

 

checkTableView = new CheckboxTableViewer(table);

 

设置标签管理器和内容管理器

 

/**
  * 标签管理
  * @author lyf
  *
  */
 private class PersonLabelProvider extends LabelProvider implements
   ITableLabelProvider {

  @Override
  public Image getColumnImage(Object element, int columnIndex) {
   // TODO Auto-generated method stub
   return null;
  }

  @Override
  public String getColumnText(Object element, int columnIndex) {
   switch (columnIndex) {
   case 0:
    return ((Person)element).getId();
   case 1:
    return ((Person)element).getName();
   case 2:
    return ((Person)element).getSex();
   case 3:
    return ((Person)element).getTel();
    

   default:
    return "";
   }
   
  }

 }
 
 /**
  * 内容管理
  *
  * @author lyf
  *
  */
 private class PersonContentProvider implements
   IStructuredContentProvider {

  @Override
  public void dispose() {
   // TODO Auto-generated method stub
   
  }

  @Override
  public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
   // TODO Auto-generated method stub
   
  }

  @SuppressWarnings("rawtypes")
  @Override
  public Object[] getElements(Object inputElement) {
   if(inputElement instanceof List) {
    return ((List)inputElement).toArray();
   }
   return new Object[0];
  }
  
 }

 

OK!差不多了 我们给tableview setinput参数就可以了 在这里我自己创建了实体类 Person来进行显示,具体可以见附件中完整的代码!

 

 

注:

在CheckboxTableViewer中 常用的几个方法有:

 

     checkTableView.setAllChecked(true); 将tableview中所有的元素选中

    checkTableView.setChecked(Object element,boolean state);设置tableview中某一个元素是否被勾选的状态

     checkTableView.getChecked(Object element);查看某个元素是否被选中

    checkTableView.getCheckedElements(); 返回所有被选中的元素集合,返回类型为Object[]

 

 

 

分享到:
评论

相关推荐

    RCP中文入门教程.rar

    RCP的优势在于它提供了一种模块化、可扩展的架构,使得开发者可以构建出功能丰富、用户界面友好的应用程序。 RCP的核心概念主要包括以下几个方面: 1. **插件(Plugin)**:在RCP中,一切皆插件。插件是RCP的基本...

    Eclipse RCP中使用第三方包

    Eclipse RCP中使用第三方包 Eclipse RCP(Rich Client Platform)是一种基于Java的插件式软件架构,允许开发者创建跨平台的桌面应用程序。使用Eclipse RCP,可以快速构建功能强大的客户端应用程序。然而,在实际...

    RCP中文入门教程.pdf

    - 在`New Plug-in Project`向导中,选择创建一个RCP应用(勾选`Would you like to create a rich client application?`)。 - 选择最基础的`Hello Rcp`模板。 - 完成配置后,点击`Finish`按钮创建项目。 3. **...

    Eclipse-RCP中文入门教程

    - **勾选OSGi选项**:选择“Create an OSGi bundle manifest”以使用OSGi进行打包,这在Eclipse 3.0及更高版本中是必需的。 - **选择RCP类型**:在“Rich Client Application”部分选择“Yes”,以创建RCP应用。 - *...

    TableView 排序

    在本场景中,我们关注的是如何在RCP(Rich Client Platform)环境中对TableView的列进行排序。RCP是Eclipse框架的一个核心部分,允许开发者创建功能丰富的桌面应用程序。 在RCP中使用TableView,我们可以利用其提供...

    java中RCP中使用JNI

    Java中的RCP(Rich Client Platform)是一种用于构建桌面应用程序的框架,它允许开发者利用Java的强大功能来创建功能丰富的跨平台应用。JNI(Java Native Interface)是Java平台的一部分,它为Java代码提供了与本地...

    RCP-1500中文操作手册.pdf

    RCP-1530型号遥控面板的特点是其小巧的机身体积和19英寸EIA机架内的安装能力,最多可安装五个单元。光圈和主黑电平调节模块采用摇杆式控制原理。而RCP-1500和RCP-1501型号遥控面板在操作面板上配有直接操作开关和...

    在RCP中显示JFreeChart报表

    在本文中,我们将深入探讨如何在Eclipse Rich Client Platform (RCP)应用程序中集成和显示JFreeChart报表。JFreeChart是一个强大的Java库,用于创建各种图表类型,如折线图、柱状图、饼图等,而RCP是Eclipse框架的一...

    RCP程序中集成其他插件的配置方法

    了解并掌握这些知识点后,开发者可以有效地在RCP程序中集成新的功能模块,提高应用的可定制性和可扩展性。同时,通过熟练运用插件系统,开发者能够利用Eclipse社区的大量开源插件资源,降低开发成本,提高开发效率。...

    RCP,RCP开发

    在RCP中,OSGI作为底层的模块化框架,为RCP提供了动态加载和管理插件的能力。开发者可以通过创建OSGI Bundle来构建RCP插件,这些插件可以在运行时被RCP框架动态加载和卸载。这种结合使得RCP应用具备了高度的灵活性和...

    RCP 中文文档

    7. **打包与部署**:将RCP应用打包成可执行的JAR或可安装的RCP产品,以便用户安装和运行。 **Eclipse_RCP(中文).doc文档**: 这个文档很可能是针对初学者的RCP教程,详细介绍了如何使用Eclipse RCP进行开发,包括...

    RCP中文入门教程

    RCP应用由一系列插件组成,每个插件负责特定的功能,从而实现模块化和可扩展性。 在开始RCP开发之前,首先需要了解Eclipse的插件体系。Eclipse插件是基于OSGi(Open Service Gateway Initiative)标准的,OSGi允许...

    Eclipse rcp深入浅出中英文版及配套代码

    10. **调试和测试**:书中还会介绍如何在Eclipse RCP环境中进行调试和编写单元测试。 11. **扩展点(Extension Points)**:这是Eclipse RCP插件系统的关键特性,允许插件之间通过定义和使用扩展点来相互协作。 12...

    rcp入门里面包含英文和中文两个版本的

    描述中的"rcp中英文双版 建议读英文版 这样更有助于提高"提示学习者,尽管提供了中文版本,但推荐选择英文版进行学习,因为阅读原文通常可以更准确地理解技术概念,也有利于提升英语水平和技术词汇的理解。...

    RCP中adapter实现属性视图

    在Eclipse RCP(Rich Client Platform)开发中,适配器(Adapter)机制是一个核心概念,它使得组件之间能够解耦合,实现灵活的交互。本文将深入探讨如何在RCP应用中通过适配器实现属性视图(Property View),以展示...

    RCP中文入门教程。。

    Eclipse RCP为开发者提供了一种强大的、可扩展的、可定制化的平台,使得开发人员可以创建出具有丰富用户界面和高度交互性的应用。这个教程将带你一步步走进RCP的世界,掌握其核心概念和实践技巧。 首先,我们来理解...

    在Eclipse RCP中应用Spring OSGI 管理bean(一)

    标题中的“在Eclipse RCP中应用Spring OSGI 管理bean(一)”表明这是一篇关于如何在Eclipse Rich Client Platform (RCP)应用程序中集成Spring框架,并利用OSGi服务来管理Bean的教程。Eclipse RCP是一个用于构建桌面...

    ECLIPSE+RCP应用系统开发方法与实战(PDF 高岗著)

    5. **命令和服务**:Eclipse RCP中的命令(Command)和服务(Service)机制,用于实现应用的可扩展性和互操作性,读者将学习如何定义和使用这些组件。 6. **透视图和工作台**:透视图(Perspective)定义了工作空间...

Global site tag (gtag.js) - Google Analytics