`

swt/jface tableViewer开发简化

阅读更多

通过使用本文的设置,引入附件的类,可以达到设置排序,可编辑,显示,换行,适应宽度等功能,

tableViewer可以达到很多功能,但也由于功能的强大,导致需要输入代码的冗余和繁重,有没有一种简单的方法,就可以达到默认的基本功能呢。
答案是有的,通过java的映射机制,我们可以简化很多有规律的代码
在我这篇文章的规范中,model类,会配备一个modelFinal类,final类是为了配置属性的排序,和属性对应的文字的排序。

GoodsBean.java

private int goodsId;
	private String goodsName;
	private String stardard;
	private String category;


对应的final类就应该这样设置

public static GoodsBeanFinal inst = new GoodsBeanFinal();

	//表示各字段,对应的columuIndex
	public  int goodsId = 0;
	public  int goodsName = 1;
	public  int stardard = 2;
	public  int category = 3;
//设置字段的顺序,与下面的COLUMU_NAME对应
	public  int[] COLUMU_INDEX = new int[] { goodsId, goodsName, stardard, category };
	public  String[] COLUMU_NAME = { "商品id", "商品名称", "商品规格", "类目" };
	public  int[] CAN_MODIFY = { goodsId, category };
	
	private GoodsBeanFinal() {
		System.err.println("..............");
	}
	@Override
	public int[] getColumuIndex() {
		// TODO Auto-generated method stub
		return COLUMU_INDEX;
	}

	@Override
	public String[] getColumuName() {
		// TODO Auto-generated method stub
		return COLUMU_NAME;
	}
//复写此接口,表示该数组对应的属性可以编辑
	@Override
	public int[] getCanModify() {
		// TODO Auto-generated method stub
		return CAN_MODIFY;
	}



自此,设置已经完成,只要导入了文章的包,就可以调用生成tableViewer了。

生成代码:

//生成测试数据
List<GoodsBean> list = new ArrayList<GoodsBean>();
		
		for(int i = 0 ; i < 10 ; i++){
			GoodsBean gb = new GoodsBean();
			gb.setGoodsId(i);
			gb.setGoodsName(r.getRandomECN(0, 5));
			gb.setStardard(r.getRandomECN(0, 5));
			gb.setCategory("点我可编辑");
			list.add(gb);
		}
		
		TableViewer tableViewer = new TableViewer(shell,SWT.FULL_SELECTION);
//设置成通用的没有特殊需求的tableViewer
//如果有特殊需求,可以通过复写provider包下的类,达到所需要的要求
		TableUtil.setCommon(tableViewer, GoodsBeanFinal.inst);
		tableViewer.setInput(list);
		tableViewer.refresh();





一下简单说下这些功能的原理:
通过final类
如:我想找寻index为1的属性是谁,通过映射,可以得到对应的属性为goodsName = 1;
通过goodsName获取到model的goodsName属性,达到get,set的功能。
至于更详细的实现操作,请下载源码,查看方法的注释,不在此累述。




如果有问题,请留言。

git:https://github.com/JavaRui/pers.crwu.swt.tableviewer

 

  • 大小: 22.3 KB
  • 大小: 13.3 KB
分享到:
评论

相关推荐

    SWT/JFace专题 --- SWT/JFace概述

    JFace 建立在SWT之上,提供了一层抽象,简化了GUI开发的复杂性。JFace的目标是通过提供数据绑定、视图模型、对话框和服务等高级构造,来提高开发者的生产力。例如,它使用模型-视图-控制器(MVC)架构,将数据管理与...

    SWT/Jface API 3.4

    2. **JFace**:JFace 是在 SWT 之上的高级接口,它的目的是为了简化 GUI 开发,提供数据绑定、视图、对话框、表单等高级功能。JFace 的一个重要特点是它支持模型-视图-控制器(MVC)设计模式,使得代码更加结构化...

    eclipse swt/jface核心应用源码

    SWT(Standard Widget Toolkit)是Eclipse的本机GUI库,而JFace是基于SWT构建的更高层次的抽象层,它简化了UI开发过程。 SWT是Java的一个图形用户界面库,它提供了一套与操作系统紧密集成的控件和API,如按钮、...

    SWT/JFace从入门到精通

    - 探索JFace:了解JFace如何简化SWT的使用,如利用TreeViewer和TableViewer展示数据。 - 练习MVC:通过创建一个简单的数据编辑视图,实践JFace的MVC模式。 - 扩展Eclipse:学习如何创建Eclipse插件,将SWT/JFace...

    SWT/JFACE API

    SWT是底层的UI库,提供了与操作系统原生控件直接交互的能力,而JFace是在SWT基础上提供的一层抽象,简化了UI开发并引入了模型-视图-控制器(MVC)设计模式。 **SWT API** SWT是IBM开发的一个轻量级GUI库,它直接与...

    swt/jface api帮助文档

    JFace是在SWT基础上构建的更高级别的抽象层,旨在简化UI开发。JFace的主要目标是减少代码量,提高代码的可读性和可维护性。它通过提供数据绑定、对话框、视图、表和树的模型-视图-控制器结构等高级服务,使得开发者...

    Eclipse SWT/JFace 核心应用的全部源代码

    其次,JFace是在SWT基础上构建的一层抽象,它简化了SWT的使用,提供了一种面向对象的API,使得开发人员可以更加专注于业务逻辑,而不是底层的GUI细节。JFace包括数据绑定、视图管理、对话框和服务等组件,它将许多...

    SWT/JFace分页

    SWT是Eclipse项目提供的一种用于创建本地化图形用户界面(GUI)的开源库,而JFace是在SWT基础上构建的更高级别的抽象层,它简化了UI开发,提供了数据绑定和事件处理等功能。 **SWT和JFace的基础知识** SWT是一个与...

    Ecilpse的SWT/JFace例子

    JFace则是在SWT之上的一个抽象层,它的目标是简化GUI开发,减少代码量,并提供数据绑定和事件处理机制。JFace将SWT的底层细节隐藏起来,让开发者可以更加专注于应用逻辑而不是UI实现。例如,JFace的Dialogs、Views和...

    SWT/JFace 3.5 API (CHM)

    SWT是底层的UI库,而JFace则在SWT的基础上提供了更高层次的抽象,简化了编程模型。 SWT是直接与操作系统进行交互的库,它利用本地窗口系统(如Windows、Linux或Mac OS X)提供的功能,以实现高效且原生的外观和性能...

    SWT/JFACE 资料

    JFace是在SWT基础上构建的一个高级GUI框架,它旨在简化应用程序开发过程。JFace提供了一些抽象类和接口,比如视图(View)、编辑器(Editor)、数据绑定(Data Binding)等,这些都使得开发者可以专注于业务逻辑,而不是...

    SWT/JFace编程

    - **表格和树**:JFace提供了TableViewer和TreeViewer,提供了对SWT表格和树的强大支持,包括排序、过滤等功能。 3. **进阶主题**: - **SWT和JFace的集成**:如何在SWT控件和JFace组件之间进行有效整合,以利用...

    Eclipse Swt/Jface核心应用 (01-03章)

    JFace是建立在SWT之上的高级抽象层,简化了GUI开发的复杂性。它提供了模型-视图-控制器(MVC)设计模式的实现,以及对话框、表视图、树视图等高级控件。JFace的目标是提高代码的可读性和可维护性,减少重复代码。 ...

    Eclipse Swt/Jface核心应用 (19-23章)

    2. **JFace**:JFace是建立在SWT之上的抽象层,简化了GUI开发,通过提供数据绑定、视图模型和控制器模式来减少代码量。它还引入了一些高级组件,如表视图、树视图和对话框。 3. **布局管理**:Eclipse SWT中,布局...

    Eclipse Swt/Jface核心应用 (14-19章)

    2. **JFace概述**:JFace是建立在SWT之上的一个高级UI框架,它简化了SWT组件的使用,提供了模型-视图-控制器(MVC)架构,使得代码更加模块化,易于维护。JFace提供了对话框、表视图、树视图、数据绑定等功能,为...

    SWT/JFace API(English)

    SWT是面向底层操作系统原生控件的库,而JFace则在其基础上提供了一层抽象,简化了UI开发。 **SWT API** 是一个与平台相关的Java库,它允许开发者创建与操作系统紧密集成的GUI组件,如按钮、文本框、列表、树视图等...

    SWT & JFace_最新最全_API

    JFace 是基于SWT构建的高级GUI框架,它的主要目的是简化GUI开发,通过提供一些抽象类和接口,帮助开发者减少代码量,同时保持代码的可读性和可维护性。JFace 提供了视图(View)、编辑器(Editor)、对话框(Dialog...

    SWT/JFace

    SWT 提供了跨平台的 GUI 组件,而 JFace 则是基于 SWT 构建的一套高级 UI 工具包,简化了开发流程。本文将详细介绍如何利用 JFace 快速构建应用程序的用户界面。 #### SWT与JFace的关系 SWT 提供了一组低级别的 ...

    swt_jface_celleditor

    JFace则是在SWT之上构建的一层抽象,它简化了GUI开发,提供了数据绑定、视图和控制器模式等高级特性。 TableViewer是JFace提供的一种用于展示表格数据的组件,它可以显示多种类型的数据,并支持各种操作,如排序、...

Global site tag (gtag.js) - Google Analytics