通过使用本文的设置,引入附件的类,可以达到设置排序,可编辑,显示,换行,适应宽度等功能,
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
相关推荐
JFace 建立在SWT之上,提供了一层抽象,简化了GUI开发的复杂性。JFace的目标是通过提供数据绑定、视图模型、对话框和服务等高级构造,来提高开发者的生产力。例如,它使用模型-视图-控制器(MVC)架构,将数据管理与...
2. **JFace**:JFace 是在 SWT 之上的高级接口,它的目的是为了简化 GUI 开发,提供数据绑定、视图、对话框、表单等高级功能。JFace 的一个重要特点是它支持模型-视图-控制器(MVC)设计模式,使得代码更加结构化...
SWT(Standard Widget Toolkit)是Eclipse的本机GUI库,而JFace是基于SWT构建的更高层次的抽象层,它简化了UI开发过程。 SWT是Java的一个图形用户界面库,它提供了一套与操作系统紧密集成的控件和API,如按钮、...
- 探索JFace:了解JFace如何简化SWT的使用,如利用TreeViewer和TableViewer展示数据。 - 练习MVC:通过创建一个简单的数据编辑视图,实践JFace的MVC模式。 - 扩展Eclipse:学习如何创建Eclipse插件,将SWT/JFace...
SWT是底层的UI库,提供了与操作系统原生控件直接交互的能力,而JFace是在SWT基础上提供的一层抽象,简化了UI开发并引入了模型-视图-控制器(MVC)设计模式。 **SWT API** SWT是IBM开发的一个轻量级GUI库,它直接与...
JFace是在SWT基础上构建的更高级别的抽象层,旨在简化UI开发。JFace的主要目标是减少代码量,提高代码的可读性和可维护性。它通过提供数据绑定、对话框、视图、表和树的模型-视图-控制器结构等高级服务,使得开发者...
其次,JFace是在SWT基础上构建的一层抽象,它简化了SWT的使用,提供了一种面向对象的API,使得开发人员可以更加专注于业务逻辑,而不是底层的GUI细节。JFace包括数据绑定、视图管理、对话框和服务等组件,它将许多...
SWT是Eclipse项目提供的一种用于创建本地化图形用户界面(GUI)的开源库,而JFace是在SWT基础上构建的更高级别的抽象层,它简化了UI开发,提供了数据绑定和事件处理等功能。 **SWT和JFace的基础知识** SWT是一个与...
JFace则是在SWT之上的一个抽象层,它的目标是简化GUI开发,减少代码量,并提供数据绑定和事件处理机制。JFace将SWT的底层细节隐藏起来,让开发者可以更加专注于应用逻辑而不是UI实现。例如,JFace的Dialogs、Views和...
SWT是底层的UI库,而JFace则在SWT的基础上提供了更高层次的抽象,简化了编程模型。 SWT是直接与操作系统进行交互的库,它利用本地窗口系统(如Windows、Linux或Mac OS X)提供的功能,以实现高效且原生的外观和性能...
JFace是在SWT基础上构建的一个高级GUI框架,它旨在简化应用程序开发过程。JFace提供了一些抽象类和接口,比如视图(View)、编辑器(Editor)、数据绑定(Data Binding)等,这些都使得开发者可以专注于业务逻辑,而不是...
- **表格和树**:JFace提供了TableViewer和TreeViewer,提供了对SWT表格和树的强大支持,包括排序、过滤等功能。 3. **进阶主题**: - **SWT和JFace的集成**:如何在SWT控件和JFace组件之间进行有效整合,以利用...
JFace是建立在SWT之上的高级抽象层,简化了GUI开发的复杂性。它提供了模型-视图-控制器(MVC)设计模式的实现,以及对话框、表视图、树视图等高级控件。JFace的目标是提高代码的可读性和可维护性,减少重复代码。 ...
2. **JFace**:JFace是建立在SWT之上的抽象层,简化了GUI开发,通过提供数据绑定、视图模型和控制器模式来减少代码量。它还引入了一些高级组件,如表视图、树视图和对话框。 3. **布局管理**:Eclipse SWT中,布局...
2. **JFace概述**:JFace是建立在SWT之上的一个高级UI框架,它简化了SWT组件的使用,提供了模型-视图-控制器(MVC)架构,使得代码更加模块化,易于维护。JFace提供了对话框、表视图、树视图、数据绑定等功能,为...
SWT是面向底层操作系统原生控件的库,而JFace则在其基础上提供了一层抽象,简化了UI开发。 **SWT API** 是一个与平台相关的Java库,它允许开发者创建与操作系统紧密集成的GUI组件,如按钮、文本框、列表、树视图等...
JFace 是基于SWT构建的高级GUI框架,它的主要目的是简化GUI开发,通过提供一些抽象类和接口,帮助开发者减少代码量,同时保持代码的可读性和可维护性。JFace 提供了视图(View)、编辑器(Editor)、对话框(Dialog...
SWT 提供了跨平台的 GUI 组件,而 JFace 则是基于 SWT 构建的一套高级 UI 工具包,简化了开发流程。本文将详细介绍如何利用 JFace 快速构建应用程序的用户界面。 #### SWT与JFace的关系 SWT 提供了一组低级别的 ...
JFace则是在SWT之上构建的一层抽象,它简化了GUI开发,提供了数据绑定、视图和控制器模式等高级特性。 TableViewer是JFace提供的一种用于展示表格数据的组件,它可以显示多种类型的数据,并支持各种操作,如排序、...