两年没用过swt做开发了,现在看回来两年前的代码写法,确实有些惨不忍睹的地方,利用空余的时间小修小补了一下,但是项目中大体的写法设计还是有些问题的,不过本次重点只在于简化开发配置,本次用了注解的方式去处理配置,感觉比之前的字符串的方式,要方便许多。
新增注解说明类:
@Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到 @Target({ElementType.FIELD,ElementType.METHOD})//定义注解的作用目标**作用范围字段、枚举的常量/方法 @Documented//说明该注解将被包含在javadoc中 public @interface YtTableItemAnno { /**是否可编辑*/ boolean editor() default false; /** table的header列的文本 */ String itemText() ; /** table的header列的宽度*/ int width() default 80 ; /** header的排序*/ int itemIndex() ; }
注解说明类,处理了常用的tableviewer的列功能处理,如宽度,可编辑等。
新增javabean用来对应tableviewer的列元素显示。
public class InOrderDesc { private int inOrderId; private String no; private String supName; private float allMoney = 0.00f; // 订单id|合同号|供应商|总金额 @YtTableItemAnno(editor = false, itemText = "订单id", itemIndex = 0 , width = 50) public int getInOrderId() { return inOrderId; } public void setInOrderId(int inOrderId) { this.inOrderId = inOrderId; } @YtTableItemAnno(editor = false, itemText = "合同号", itemIndex = 1 , width = 50) public String getNo() { return no; } public void setNo(String no) { this.no = no; } @YtTableItemAnno(editor = true, itemText = "供应商(可编辑)", itemIndex = 2 , width = 100) public String getSupName() { return supName; } public void setSupName(String supName) { this.supName = supName; } @YtTableItemAnno(editor = true, itemText = "总金额(可编辑)", itemIndex = 3 , width = 100) public float getAllMoney() { return allMoney; } public void setAllMoney(float allMoney) { this.allMoney = allMoney; } @Override public String toString() { return "InOrderDesc [inOrderId=" + inOrderId + ", no=" + no + ", supName=" + supName + ", allMoney=" + allMoney + "]"; } @YtTableItemAnno(editor = true, itemText = "是否超过20块", itemIndex = 4 , width = 50) public String getFlag() { if (allMoney > 20) { return "是"; } return "否"; } }
可以看到,现在的配置,直接是写在了javabean中,不需要单独去做处理
而生成一个tableviewer的方式,只需要以下写法
private void initTable2() { List<InOrderDesc> list = new ArrayList<InOrderDesc>(); //创建随机数据 for(int i = 0 ; i < 10 ; i++){ InOrderDesc gb = new InOrderDesc(); gb.setInOrderId(i); gb.setNo(r.getEnRandom(5, 10)); gb.setSupName(r.getChRandom(1, 3)); gb.setAllMoney(Float.valueOf(r.getNumFixed(4))/100); list.add(gb); } //初始化tableViewer YtCheckBoxTable tableViewer = YtCheckBoxTable.newSimpleTable(this, InOrderDesc.class); //设置数据显示列表 tableViewer.setEoList(list); }
效果图如下:
总体的作法,就是在你创建一个bean的时候把你所需要的处理用注解的方式写入进去,就可以生成一个tableviewer了。git代码而下
https://github.com/JavaRui/pers.crwu.swt.tableviewer.git
或者下载附件
相关推荐
本篇文章将聚焦于SWT/JFace中的tableViewer组件的开发与简化。 首先,`tableViewer`是JFace库中用于展示表格数据的核心组件。它为开发者提供了一种方便的方式来显示和操作数据,同时处理了诸如排序、过滤等复杂功能...
RCP开发比Table更高级的TableViewer的使用。实现列的隐藏与显示
在本文中,我们将深入探讨如何使用Swt/Jface库中的`tableViewer`组件来创建一个基本的表格视图。Swt(Standard Widget Toolkit)是Java中用于开发原生界面的应用程序开发工具包,而Jface是建立在Swt之上的抽象层,...
在IT领域,特别是Java Swing和Eclipse RCP开发中,TableViewer是经常被用来展示数据的一个组件。"Set TableViewer Cell Focus"这个话题是关于如何在TableViewer中设置焦点到特定单元格上,这对于实现用户交互和数据...
在Java开发领域,尤其是涉及到Swing或Eclipse RCP( Rich Client Platform)应用程序时,`TableViewer`是一个非常重要的组件。它允许开发者在用户界面中展示表格数据,并提供了丰富的功能来处理这些数据。本篇文章将...
在 Eclipse RCP(Rich Client Platform)开发中,`TableViewer` 是一个强大的组件,用于展示数据表。`TableViewer` 是 `JFace` 库的一部分,它提供了与 SWT(Standard Widget Toolkit)表格控件的高级接口,使得数据...
【TableViewer示例】——全面探索TableViewer的使用 在Java SWT(Standard Widget Toolkit)库中,TableViewer是一个...在实际开发中,结合具体的业务需求,灵活运用这些知识点,可以构建出高效、易用的数据展示界面。
在IT行业中,特别是Java Swing和Eclipse RCP开发领域,SWT(Standard Widget Toolkit)是一个广泛应用的图形用户界面(GUI)库。...对于源码和工具爱好者,学习和掌握TableViewer的使用无疑会提升你的开发技能。
Jface TableViewer控件实现的对标签文件的标签属性的修改功能。 用TextCellEditor和ComboBoxCellEditor给表格添加编辑功能。 通过表格的addListener事件为表格的单元格添加编辑功能,事例根据鼠标点击时鼠标的X和Y...
点击Enter键,对TableViewer的单元格进行逐个遍历的辅助类,推荐用于使用ViewerColumn.setEditingSupport的可编辑TableViewer。 Since 3.3, an alternative API is available, see ViewerColumn.setEditingSupport...
标题“Setting focus cell in TableViewer”涉及到的是在Eclipse RCP(Rich Client Platform)开发中,如何在TableViewer组件中设置焦点单元格。TableViewer是Eclipse JFace库中的一个关键组件,用于显示和操作表格...
在本文中,我们将深入探讨如何使用Swt/Jface库中的`TableViewer`组件来创建一个功能丰富的表格,并实现用户可以直接在表格上编辑数据的功能。Swt/Jface是Eclipse平台的一部分,提供了一套用于构建图形用户界面(GUI...
在Java开发领域,TableViewer是SWT(Standard Widget Toolkit)库中的一个重要组件,常用于创建类似于电子表格的数据展示界面。这个“带有翻页功能的TableViewer.rar”文件可能包含了一个示例项目,演示如何在...
Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar Plugins-JFace-TableViewer.rar
虽然文件名字起得很笼统 里面只有一个关于TableViewer的项目源码 源码的依据是我转载的一篇学习TableViewer的博客源码 http://blog.csdn.net/weiweiwei256/article/details/49514699
利用TreeViewer和TableViewer来显示和操作数据集合,提供强大的数据浏览和编辑功能。 在学习和使用SWT和JFace时,深入理解以下几个方面尤为重要: 1. 控件和布局:掌握各种基本控件的用法,如Button、Text、Label...
JFace是在SWT之上构建的一层抽象,它旨在简化UI开发,减少代码量,并提供了更多的高级功能。 - 视图和控制器:JFace引入了MVC(模型-视图-控制器)设计模式,分离了界面逻辑和业务逻辑,使代码更易于理解和维护。...
本篇文章将详细介绍如何利用Eclipse RCP开发一个简单的MySQL客户端工具,这对于想要深入理解Eclipse RCP框架以及插件开发的开发者来说是非常有帮助的。 首先,我们需要了解Eclipse RCP的基础。Eclipse RCP的核心...
SWT(Standard Widget Toolkit)提供了与操作系统紧密集成的GUI组件,而JFace则建立在SWT之上,提供了一套更高级、面向对象的界面构建工具,简化了UI开发。 第五章"容器与布局管理器"是界面设计的关键。Eclipse支持...
在开发Eclipse插件之天气预报的过程中,我们主要涉及到的是如何利用Eclipse的插件开发框架(PDE,Plug-in Development Environment)来扩展Eclipse的功能,实现一个集成天气预报查询的工具。Eclipse是一个开放源码的...