我需要从SQL select结果集构建一个表。我想在表中添加一些分页功能,因为结果集可能非常大。有很多讨论如何在SQL级别进行分页。但是如何在GUI级实现分页?我有两个想法:
第二个看起来更好但实现起来很复杂。何时进行SQL选择下一个数据块,以便用户不必等待它。应该有一些“预读”逻辑?如果用户滚动得很快会发生什么?如何处理不再可见的行以获得恒定的内存使用量? 也许已经有这样的表组件或好的例子?或者这个好看的表功能是不值得实现它的努力?
答案 0 :(得分:1)
您可以直接在TableModel中执行所有操作,无需在UI中更改某些内容(您可以在UI中显示某些内容 - 状态 - 但您无需更改JTable呈现自身的方式)。 / p>
只需实现一个JDBCTableModel,它将具有:
分页对于Swing应用程序没有意义,它是在当前花哨的AJAX库实现表滚动之前发明的(参见http://www.ext-livegrid.com/)。
答案 1 :(得分:0)
为AJAX库构建分页表的人显然已经考虑过这一点,所以如果找不到已经构建的东西,你可以从中学习。由于您使用的是Java,请注意您可以找到用Java编写的用于GWT的分页表。看到这些SO线程:
Best pageable table implementation in GWT
您实施的想法(以及大部分代码)可以在上面提到的开源项目中找到。