因为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