[原创]Java技巧:分布式Jtables处理[2]
2004-08-31 22:49
357 查看
[原创]Java技巧:分布式Jtables处理[2]
资料
一般的table要求可以按照列的升序或者降序分类。Jtbale组成部分没有固定的功能分类;它必须以TableModel执行方式被执行(见:http://www.javaworld.com/javaworld/javatips/jw-javatip137.html?#resources#resources)。必须拥有所有马上用于分类的数据。由于所有的数据都在服务器上,分类必须在服务器上进行。通过DistributedTableDataSource接口发送一个分类消息给服务器实现以具体某行的升序或者降序排序操作是很方便的。可以使用SQL ORDER操作员可以实现手动分类或者数据库复杂操作。,客户端的数据缓存将被无效,并且table被更新。JTable降立即请求填充在显示的table部分。这降引发服务器端新数据的从新下载。
在排序处理中,出现了一个问题。用户选择的行发生了什么?当然放弃那些选择的部分是不被接受的。在JTable 中,通过使用记录了选择的行索引的ListSelectionModel接口,选择操作被执行。如果由于执行一个选择改变了TbaleModel后台的数据,ListSelectionModel将没有关于新的选择部分的索引信息,并且选择将会包括一部分旧的数据。无论如何,如果知道选择部分新的行索引,就可以执行手动的操作。在排列操作之前,记录选择的行。在排列操作之后,table选择清楚然后选择行新的索引设置在ListSelectionModel里面。在DistributedTableDataSource接口中的排列方法采取下面的形式:
int[] sort(int sortColumn, boolean ascending, int[] selectedRows) throws Exception
沿着排序的列,采取上升顺序,必须天上选择的行索引,然后返回排序数据相应的索引。三个方法用于完整执行排序方法:setSelectedRowsAndColumns(),getSelectedRows()和getSelectedColumns()。这些方法在服务器和客户端之间同步保持选择部分。
图3 排序和选择操作的流程图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/28/2890559d771d00d603475b752f1b1f74.jpg)
图 3 分布式JTable的排序操作
简单化table操作
下面描述了一种方法,这种方法可以快速显示一个table,而不用等待下载大块的数据。如果用户向下滚动整个table,所有的数据都必须快速或者缓慢的下载。但是,在下载所有的数据和快速显示之间总是有一个平衡的。这个技巧方法拥有下面的好处:
· Table组成部分快速显示
· 客户端程序不使用过多的内存,因为客户端只是存储了少数的数据
· 一个table或者电子表格的丰富接口被保持
· 当用户对某行以后的数据不感兴趣的时候,数据源不用花费过多的资源用于数据下载。
在演示中,一个客户端包含了只读的可排序的JTable,它包括了200,000行数据,这些数据是作为XML从servlset得到的,它们存储在一个分布式表模式DistributedTableModel中。通过扩展这个演示,可以轻易的实现单元选择,数据编辑,等等。
资料
一般的table要求可以按照列的升序或者降序分类。Jtbale组成部分没有固定的功能分类;它必须以TableModel执行方式被执行(见:http://www.javaworld.com/javaworld/javatips/jw-javatip137.html?#resources#resources)。必须拥有所有马上用于分类的数据。由于所有的数据都在服务器上,分类必须在服务器上进行。通过DistributedTableDataSource接口发送一个分类消息给服务器实现以具体某行的升序或者降序排序操作是很方便的。可以使用SQL ORDER操作员可以实现手动分类或者数据库复杂操作。,客户端的数据缓存将被无效,并且table被更新。JTable降立即请求填充在显示的table部分。这降引发服务器端新数据的从新下载。
在排序处理中,出现了一个问题。用户选择的行发生了什么?当然放弃那些选择的部分是不被接受的。在JTable 中,通过使用记录了选择的行索引的ListSelectionModel接口,选择操作被执行。如果由于执行一个选择改变了TbaleModel后台的数据,ListSelectionModel将没有关于新的选择部分的索引信息,并且选择将会包括一部分旧的数据。无论如何,如果知道选择部分新的行索引,就可以执行手动的操作。在排列操作之前,记录选择的行。在排列操作之后,table选择清楚然后选择行新的索引设置在ListSelectionModel里面。在DistributedTableDataSource接口中的排列方法采取下面的形式:
int[] sort(int sortColumn, boolean ascending, int[] selectedRows) throws Exception
沿着排序的列,采取上升顺序,必须天上选择的行索引,然后返回排序数据相应的索引。三个方法用于完整执行排序方法:setSelectedRowsAndColumns(),getSelectedRows()和getSelectedColumns()。这些方法在服务器和客户端之间同步保持选择部分。
图3 排序和选择操作的流程图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202001/28/2890559d771d00d603475b752f1b1f74.jpg)
图 3 分布式JTable的排序操作
简单化table操作
下面描述了一种方法,这种方法可以快速显示一个table,而不用等待下载大块的数据。如果用户向下滚动整个table,所有的数据都必须快速或者缓慢的下载。但是,在下载所有的数据和快速显示之间总是有一个平衡的。这个技巧方法拥有下面的好处:
· Table组成部分快速显示
· 客户端程序不使用过多的内存,因为客户端只是存储了少数的数据
· 一个table或者电子表格的丰富接口被保持
· 当用户对某行以后的数据不感兴趣的时候,数据源不用花费过多的资源用于数据下载。
在演示中,一个客户端包含了只读的可排序的JTable,它包括了200,000行数据,这些数据是作为XML从servlset得到的,它们存储在一个分布式表模式DistributedTableModel中。通过扩展这个演示,可以轻易的实现单元选择,数据编辑,等等。
相关文章推荐
- [原创]Java技巧:分布式Jtables处理[1]
- 如何更有效地组织、处理CSDN技术资料及文档(原创,附完整java源程序)
- Java图像处理技巧四则
- Java图像处理技巧四则-剪切,缩放,灰度变换,彩色变换
- java多线程的一些处理技巧
- JAVA 性能调优-异常处理技巧
- Java异常处理机制的详细讲解和使用技巧
- Java对代码表的处理技巧
- [原创]JAVA 开发工具Jcreator使用技巧总结
- 《Java 编程技巧1001条》第421条:如何不处理事件
- java string 分隔 处理效率 技巧
- Java Swing中的键盘事件处理技巧
- Java图像处理技巧四则
- 【原创】Java 应用中对于异常处理的一般策略
- Java图像处理技巧四则
- Java 分布式处理技术
- 【编程技巧】java不使用第三个变量处理两个变量的交换
- [原创]打破Java异常处理规则
- Myeclipse - Web项目转换技巧--处理Java项目、SVN非Web项目问题
- 利用开源的Gearman框架构建分布式图片处理平台[原创]