2

我打算编写一个 JFX 应用程序来显示来自包含多达 1M 条目的数据库表中的数据。不幸的是,标准 API 很难支持延迟加载。读取整个表不是一种选择(即使它在多达 100K 条目时表现良好)。

可以使用作为模型提供给 TableView 的自定义列表类来完成分页。但是,我还需要控制 TableView 的排序行为,因为在我的情况下,这将留给 dbms。

一个丑陋的解决方案是使列不可排序,并将 Click-Event 侦听器添加到 Column-Header。除了编码之外,这也使得无法以通常的方式显示当前的排序顺序。

可以监听对 columnSortOrder 的更改,但仍应用标准排序机制。我想做的是在列标题中显示标准的升序/降序图标,同时完全控制 TableView 的排序行为。

[编辑:简而言之,我想实现延迟加载。我想要一个行为与普通 TableView 完全相同但在用户单击列标题时不对列表进行排序的 TableView。但是,排序顺序仍应显示在列标题标签中。]

这有可能实现吗?

非常感谢您提前回答!

4

1 回答 1

0

以供参考:

这已添加到 JavaFX-8。可以使用TableView.setSortPolicy(...)自定义排序。

于 2014-12-01T07:26:42.770 回答