处理自己滚动的JTabel替代方案

时间:2012-11-01 15:57:49

标签: java swing jtable

我想知道是否有人知道基于Swing的JTable替代方案处理了自己的滚动而不必放在JScrollPane中。

让我解释一下原因。我目前正在开展一个项目,我需要以表格格式从数据库中显示最多1.6 GB的数据。我花了最后一周半研究JTable及其所有相关课程。我所学到的知识让我相信JTable不足以应对其后的原因。

数据集太大而无法在屏幕上显示的JTable需要放入JScrollPane,它充当了太大而无法放在屏幕上的组件的移动窗口。这满足了能够拥有一个不使用分页的荒谬的大型JTable的要求。但是,仍然会创建整个JTable,导致TableModel被要求提供所有数据。在这一点上我可能是错的,但是我的实践经验和缺乏关于这些东西基础的文档表明我不是。

我需要一个JTable,它将连续滚动从数据库中分页并在TableModel端缓存(仅约100-300条记录)的庞大数据集(PAY注意!这是重要的部分)只要求表格可见区域的数据。我的经验表明,JScrollPane中的标准JTable将询问所有数据,无论可见什么都阻止任何类型的后端分页工作。告诉我,我错了,并向我展示一个有效的反例,或者指出我的行为符合我需要的第三方组件。

1 个答案:

答案 0 :(得分:4)

没有针对此的通用解决方案,因为实现取决于您打算如何将数据模型划分为可管理的部分。根据建议here,您可以使用List<Record>方法对任意subList()进行分区。您可以公开包含每个分区的单个模型,如here所示。另请参阅使用SQL的替代approach

  

我需要连续滚动而不是分页。

TableModel的实施可以使用不断更新视图的SwingWorker,如exampleAPI所示。