`

Swing JTable工厂(table4j)

阅读更多
因为Swing提供的JTable用起来比较困难,而且实现功能也比较麻烦,所以自己封装了一个JTable工具,来实现常用的对JTable的操作,使用该工具包获得到JTable,功能强大,用起来也非常简单。利用该工具来操作JTable是线程安全的,可以同时对一个JTable进行增删改查,经过压力测试,程序在JTable有8000行以下数据时运行良好,在8000以上数据时会有操作延迟。工具的源码已经放在了SourceForge上面了路径为:http://sourceforge.net/projects/table4j/,欢迎大家对它进行改进。

开发这个工具的思路也很简单:在线程安全的情况下操作TableModel。该工具我这边还有更多的功能(定制版,通用性不强),例如:在table里嵌入按钮,图像,下拉菜单,这些大家只有去改改源码都可以实现。为了做一个通用性更强的Table工厂就没有上传这些代码。

工具可以实现的功能有:
1.JTable根据表头排序。
2.在table的最后面插入一行。 addOneRow(Object[] tableAddRow)
3.在指定行的上面插入用户需要的行,并使插入行处于选中状态。 insertOneRow(int currentRow,Object[] tableInsertRow);
4.对指定table的指定的行进行维护。updateTableOneRow(int opRow,Object[] voValues);
5.删除操作table中选中的一行。removeOneRow(int currentRow);
6.将table中选中的一行上移。currentRowMoveUp(int currentRow);
7.将table中选中的一行下移。currentRowMoveDown(int currentRow);
8.将table中指定的列设为隐藏。setColumnsHidden(JTable table, int[] colmnNum);
9.设置table中单元格是否可以被编辑。setColumnsEditable(int[] columns);
10.设置table的样式,隔行变色。

得到经过加工后的table。getZTable();

// 设置第三第四列可以被编辑。
		tableOp.setColumnsEditable(colsEditable);
		// 设置table信息生成Table。
		tableOp.setTableInfors(tableHeader, tableBody, colWidth);
		
		// 得到Table。
		JTable ztable = tableOp.getZTable();
		// 设置Table的样式, 隔行变色。
		tableOp.setTableStyle(ztable);
		// 当前行下移。
		tableOp.currentRowMoveDown(ztable.getSelectedColumn());
		// 当前行上移。
		tableOp.currentRowMoveUp(ztable.getSelectedColumn());
		// 在指定行的上面插入一行。
		tableOp.insertOneRow(ztable.getSelectedColumn(), tableHeader);
		// 在table最后插入一行。
		tableOp.addOneRow(tableHeader);
		// 删除一行。
		tableOp.removeOneRow(ztable.getSelectedColumn());
		// 更新一行。
		tableOp.updateTableOneRow(ztable.getSelectedColumn(), tableHeader);


源代码我已经放到了sourceforge并开源,欢迎大家去使用和修改,为了方便大家下载我也在附件中放了一份。源码中有一个例子:Table4jDemo,大家看看例子就很清楚工厂是怎么运作的了。希望大家喜欢这个工具。
下载地址: http://sourceforge.net/projects/table4j/
运行后的效果图:


文章地址:http://javapub.iteye.com/blog/686157
2
1
分享到:
评论
7 楼 田晓东 2013-04-14  
恩恩 不错 我下载下来了,一个demo,正好可以用用,不过界面还是有点不好看,呵呵 慢慢写点皮肤~~不错不错
6 楼 wytianshizanghua 2012-11-15  
哪天楼主能不能花个时间讲讲表排序的原理 
5 楼 javapub 2012-06-05  
503718696 写道
老总你的图都破了!

回头把所有图片整理下,重新弄上来。
4 楼 javapub 2012-06-05  
503718696 写道
老总你的图都破了!

没有办法,空间到期了,不打算续了。
3 楼 503718696 2012-05-29  
老总你的图都破了!
2 楼 javapub 2010-11-19  
winstars 写道
啧啧,好东西,刚刚好用上,thx楼主

不客气,现在java6 bate版,虽然提供表头排序的类,但感觉效率不佳,估计也不是线程安全的。
1 楼 winstars 2010-11-18  
啧啧,好东西,刚刚好用上,thx楼主

相关推荐

Global site tag (gtag.js) - Google Analytics