swt/jface tableViewer开发简化
2015-07-31 15:31
337 查看
通过使用本文的设置,引入附件的类,可以达到设置排序,可编辑,显示,换行,适应宽度等功能,
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
相关文章推荐
- Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)
- Swt/Jface tableviewer总结(主要参考)(一)
- Swt/Jface tableviewer入门教程3
- Swt/Jface tableviewer入门教程四(加入filter ,改变行的颜色)
- Swt/Jface tableViewer总结(二)
- Swt/Jface tableviewer总结
- Swt/Jface tableviewer入门教程4
- Swt/Jface tableViewer总结(三)
- Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)
- Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)
- Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)
- Swt/Jface tableviewer入门教程四(加入filter ,改变行的颜色)
- Swt/Jface tableViewer入门教程(显示tableViewer) 转 受益匪浅
- 在SWT的table中或在JFace的TableViewer中添加checkbox
- Swt/Jface tableViewer总结(五)
- Swt/Jface tableViewer入门教程一(显示tableViewer)
- Swt/Jface tableviewer入门教程四(加入filter ,改变行的颜色)
- Swt/Jface tableViewer入门教程一(显示tableViewer)
- Swt/Jface tableViewer入门教程一(显示tableViewer)
- Swt/Jface tableViewer入门教程二(让TableViewer按照列排序)