【发布时间】:2012-07-23 17:12:00
【问题描述】:
我有一个 JTable 有两列,fileName 和 date modified。我为第一列添加了名称 String 并为第二个 dateTime 列添加了 new Date(tempFile.lastModified())。
我将 dateTime 列呈现为 new SimpleDateFormat("MM/dd/yy HH:mm:ss") 字符串。
我还启用了m_listTbl.setAutoCreateRowSorter(true);
但是修改日期列的排序结果不对。
这是为什么?我还需要编写自己的分拣机吗?
编辑:
在注释掉几乎所有额外代码且未按日期字符串呈现后,我得到以下结果。默认情况下,JTable Java 似乎按 day 对 Date 对象进行排序。我将进行更多测试以查看我的代码有什么问题。
EDIT2
我已经测试并弄清楚了。如果你使用 DefaultTableModel 而不覆盖它的 getColumnClass() 方法,你会遇到 Date 或 Number 列的问题。
【问题讨论】:
-
因为你的代码有问题。向我们展示相关代码。
-
您是说默认情况下,JTable 将能够正确排序 Date 吗?那么我会更仔细地查看我的代码。
-
你为什么不自己定义它们的可比性,这将有更多的用途,然后学习如何使用一些任意的表格排序方法。
-
@TylerHeiks:无需说明它们的可比性,因为 Date 已经实现了 Comparable。
-
考虑 table.setRowSorter(new TableRowSorter(model))