我打算编写一个 JFX 应用程序来显示包含多达 1M 条目的数据库表中的数据。不幸的是,标准 API 很难支持延迟加载。读取整个表不是一个选项(即使它在多达 100K 个条目时表现良好)。
可以使用作为 TableView 模型提供的自定义列表类来完成分页。但是,我还需要控制 TableView 的排序行为,因为在我的例子中,这将留给 dbms。
一个丑陋的解决方案是使列不可排序,并向列标题添加一个 Click-Event 监听器。除了编码之外,这也使得无法以通常的方式显示当前排序顺序。
可以监听 columnSortOrder 的变化,但仍然应用标准排序机制。我希望能够做的是在列标题中显示标准的升序/降序图标,同时完全控制 TableView 的排序行为。
[编辑:简而言之,我想实现延迟加载。我想要一个 TableView,它的行为与普通 TableView 完全一样,但当用户单击列标题时不对列表进行排序。但是,排序顺序仍应显示在列标题标签中。]
这有可能实现吗?
非常感谢您的提前回答!
最佳答案
供引用:
这已添加到 JavaFX-8。可以使用 TableView.setSortPolicy(...)
自定义排序。
关于java - JavaFX 中 TableView 的排序行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913510/