【发布时间】:2015-08-19 01:46:29
【问题描述】:
...其中T 是TableView 的泛型类型。
到目前为止,我正在实现一个包含三列的文件列表视图。每个类型java.nio.file.Path。对于名称列,我写了一个Comparator<Path>,它使用目录优先和不区分大小写对文件进行排序。其他两个比较器按上次修改时间和文件大小排序。为此,他们在long 字段上进行比较。
但列的comparatorProperty 是基于Comparator<String>。我认为,根据显示的文本进行排序......
所以我必须找到一种方法,使用 TableView 类型的 sort-on-header-click 功能?
【问题讨论】:
-
你能贴一些代码吗?我真的不明白你的
TableView和TableColumns 的类型是什么。TableView<Path>、TableColumn<Path, Path>、TableColumn<Path, FileTime>、TableColumn<Path, Long>是显而易见的选择,但这些似乎与您的描述不符。 -
看起来您只是误读了 api 文档...看不到比较器
,它是 comparator<T>,其中 T 是列数据的类型 :-) -
你们说的都对。我误解了
TableColumnBase<S, T>中T参数的描述。所以我有TableColumn<Path, String>,而不是TableColumn<Path, Path>,例如。更改此设置后,我可以使用Comparator<Path>。谢谢你。 :) -
您可以考虑回答并接受您自己的问题 - 未来的读者更容易找到解决方案 :-)
标签: java sorting javafx tableview javafx-8