java - JavaFX 中 TableView 的排序行为

标签 java database user-interface javafx-2

我打算编写一个 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/

相关文章:

sql - 将数据从一个表更新到另一个表(在数据库中)

c# - 在 Silverlight 中调用 Dispatcher.CheckAccess() 是好的形式吗?

ios - 在表格 View 单元格中更改重新排序控件的颜色

java - 静态 block 用法中的抽象类

java - Java 中的 Play Framework 表单示例

java - CodeNameOne 的新 GUI 构建器引入了异常?

php - 需要、选择好的数据库驱动程序的建议

Android 4.2.1 - 以编程方式更新 APN 设置数据库中的列

java - 创建不同的 GUI 组件作为单独的类

java - 将对象保存到 firebase db 时出现意外错误? (mClassMapper.access$200(com.google.firebase :firebase-database@@16. 0.5:47))