JTable按日期排序

时间:2012-07-23 17:12:01

标签: java swing sorting jtable

我有一个 JTable ,有两列, fileName 日期修改。我为第一列添加了名称 String ,并为第二个dateTime列添加了new Date(tempFile.lastModified())

我将dateTime列呈现为new SimpleDateFormat("MM/dd/yy HH:mm:ss")字符串。

我也启用了m_listTbl.setAutoCreateRowSorter(true);

修改日期列中的排序结果不正确。

enter image description here

这是为什么?我还需要编写自己的分拣机吗?

修改

在注释掉几乎所有额外代码并且没有由日期字符串呈现之后,我得到了以下结果。默认情况下,JTable Java排序日期对象默认为。我会测试更多以查看我的代码有什么问题。 enter image description here

EDIT2

我已经测试并想通了。如果使用DefaultTableModel而不覆盖其getColumnClass()方法,则会遇到Date或Number列的问题。

1 个答案:

答案 0 :(得分:0)

EDIT2:绝对。在链接到tablemodel的jtable中遇到同样的问题我可以确认问题是由与tableModel中的列值(EDIT2)相关联的类引起的。令人惊讶的是Date列是Object类,无论完美类型是什么,当覆盖公共对象DefaultTableModel时,我的子类getValueAt(int row, int col)中返回了Date。

解决方法是覆盖getColumnClass子类中的DefaultTableModel。如果不这样做,在对Date日期列进行排序时,对Object for Dates进行排序,结果很奇怪。