`

利用注解简化tableViewer开发

 
阅读更多

两年没用过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

或者下载附件

 

 

 

 

 

 

 

 

 

  • 大小: 16.7 KB
分享到:
评论

相关推荐

    swt/jface tableViewer开发简化

    本篇文章将聚焦于SWT/JFace中的tableViewer组件的开发与简化。 首先,`tableViewer`是JFace库中用于展示表格数据的核心组件。它为开发者提供了一种方便的方式来显示和操作数据,同时处理了诸如排序、过滤等复杂功能...

    RCP开发之TableViewer 列的显示与隐藏

    RCP开发比Table更高级的TableViewer的使用。实现列的隐藏与显示

    Swt/Jface tableViewer入门教程一(显示tableViewer)

    在本文中,我们将深入探讨如何使用Swt/Jface库中的`tableViewer`组件来创建一个基本的表格视图。Swt(Standard Widget Toolkit)是Java中用于开发原生界面的应用程序开发工具包,而Jface是建立在Swt之上的抽象层,...

    Set TableViewer Cell Focus

    在IT领域,特别是Java Swing和Eclipse RCP开发中,TableViewer是经常被用来展示数据的一个组件。"Set TableViewer Cell Focus"这个话题是关于如何在TableViewer中设置焦点到特定单元格上,这对于实现用户交互和数据...

    Tableviewer实现

    在Java开发领域,尤其是涉及到Swing或Eclipse RCP( Rich Client Platform)应用程序时,`TableViewer`是一个非常重要的组件。它允许开发者在用户界面中展示表格数据,并提供了丰富的功能来处理这些数据。本篇文章将...

    tableviewer edit

    在 Eclipse RCP(Rich Client Platform)开发中,`TableViewer` 是一个强大的组件,用于展示数据表。`TableViewer` 是 `JFace` 库的一部分,它提供了与 SWT(Standard Widget Toolkit)表格控件的高级接口,使得数据...

    TableViewer示例

    【TableViewer示例】——全面探索TableViewer的使用 在Java SWT(Standard Widget Toolkit)库中,TableViewer是一个...在实际开发中,结合具体的业务需求,灵活运用这些知识点,可以构建出高效、易用的数据展示界面。

    SWT中自己订制了一个TableViewer(用于我的列出项目中的所有错误信息),作为测试用的。与大家分享

    在IT行业中,特别是Java Swing和Eclipse RCP开发领域,SWT(Standard Widget Toolkit)是一个广泛应用的图形用户界面(GUI)库。...对于源码和工具爱好者,学习和掌握TableViewer的使用无疑会提升你的开发技能。

    TableViewer单元格编辑功能

    Jface TableViewer控件实现的对标签文件的标签属性的修改功能。 用TextCellEditor和ComboBoxCellEditor给表格添加编辑功能。 通过表格的addListener事件为表格的单元格添加编辑功能,事例根据鼠标点击时鼠标的X和Y...

    JFace TableViewer的单元格逐个遍历的辅助类

    点击Enter键,对TableViewer的单元格进行逐个遍历的辅助类,推荐用于使用ViewerColumn.setEditingSupport的可编辑TableViewer。 Since 3.3, an alternative API is available, see ViewerColumn.setEditingSupport...

    Setting focus cell in TableViewer

    标题“Setting focus cell in TableViewer”涉及到的是在Eclipse RCP(Rich Client Platform)开发中,如何在TableViewer组件中设置焦点单元格。TableViewer是Eclipse JFace库中的一个关键组件,用于显示和操作表格...

    Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)

    在本文中,我们将深入探讨如何使用Swt/Jface库中的`TableViewer`组件来创建一个功能丰富的表格,并实现用户可以直接在表格上编辑数据的功能。Swt/Jface是Eclipse平台的一部分,提供了一套用于构建图形用户界面(GUI...

    带有翻页功能的TableViewer.rar

    在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 Plugins-JFace-TableViewer.rar

    TableViewer学习源码

    虽然文件名字起得很笼统 里面只有一个关于TableViewer的项目源码 源码的依据是我转载的一篇学习TableViewer的博客源码 http://blog.csdn.net/weiweiwei256/article/details/49514699

    Eclipse SWT,JFace开发实战精解 书中

    利用TreeViewer和TableViewer来显示和操作数据集合,提供强大的数据浏览和编辑功能。 在学习和使用SWT和JFace时,深入理解以下几个方面尤为重要: 1. 控件和布局:掌握各种基本控件的用法,如Button、Text、Label...

    SWT和JFace开发实例

    JFace是在SWT之上构建的一层抽象,它旨在简化UI开发,减少代码量,并提供了更多的高级功能。 - 视图和控制器:JFace引入了MVC(模型-视图-控制器)设计模式,分离了界面逻辑和业务逻辑,使代码更易于理解和维护。...

    eclipse RCP开发一个简单的MYSQL客户端工具介绍

    本篇文章将详细介绍如何利用Eclipse RCP开发一个简单的MySQL客户端工具,这对于想要深入理解Eclipse RCP框架以及插件开发的开发者来说是非常有帮助的。 首先,我们需要了解Eclipse RCP的基础。Eclipse RCP的核心...

    eclipse插件开发学习笔记(扫描版1-14章)

    SWT(Standard Widget Toolkit)提供了与操作系统紧密集成的GUI组件,而JFace则建立在SWT之上,提供了一套更高级、面向对象的界面构建工具,简化了UI开发。 第五章"容器与布局管理器"是界面设计的关键。Eclipse支持...

    开发Eclipse插件之天气预报

    在开发Eclipse插件之天气预报的过程中,我们主要涉及到的是如何利用Eclipse的插件开发框架(PDE,Plug-in Development Environment)来扩展Eclipse的功能,实现一个集成天气预报查询的工具。Eclipse是一个开放源码的...

Global site tag (gtag.js) - Google Analytics