Java JTable按日期排序

Java JTable按日期排序,java,swing,sorting,jtable,Java,Swing,Sorting,Jtable,我有一个带有两列的JTable,fileName和datemodified。我为第一列添加了nameString,为第二列添加了newdate(tempFile.lastModified()) 我将dateTime列呈现为新的SimpleDataFormat(“MM/dd/yy HH:MM:ss”)字符串 我还启用了m_listTbl.setAutoCreateRowSorter(true) 但是date modified列中的排序结果不正确 为什么会这样?我还需要自己编写分类程序吗 编辑:

我有一个带有两列的JTablefileNamedatemodified。我为第一列添加了nameString,为第二列添加了
newdate(tempFile.lastModified())

我将dateTime列呈现为
新的SimpleDataFormat(“MM/dd/yy HH:MM:ss”)
字符串

我还启用了
m_listTbl.setAutoCreateRowSorter(true)

但是date modified列中的排序结果不正确

为什么会这样?我还需要自己编写分类程序吗

编辑:

在注释掉几乎所有额外的代码,而不是按日期字符串呈现之后,我得到了以下结果。默认情况下,它在JTable Java sortDate对象中按day排序。我将进行更多测试,看看我的代码有什么问题。

EDIT2


我已经测试并弄明白了。如果使用DefaultTableModel而不重写其getColumnClass()方法,则日期列或数字列将出现问题。

EDIT2:绝对正确。链接到
tablemodel
的jtable中存在相同的问题,我可以确认该问题是由于与
tablemodel
中的列值(EDIT2)关联的类造成的。令人惊讶的是,当重写公共对象时,无论在我的
DefaultTableModel
子类中返回了一个完美的类型Date,Date列都是类对象
getValueAt(int row,int col)


解决方法是覆盖
DefaultTableModel
的子类中的
getColumnClass
。如果不这样做,则在对日期列进行排序时,会对具有奇怪结果的日期对象进行排序。

因为代码中存在问题。向我们显示相关代码。您是说默认情况下,JTable能够正确排序日期吗?然后我会更仔细地看我的代码。为什么不直接定义它们是如何比较自己的?这将有更多的用途,然后学习如何使用一些任意的表排序方法。@ TylerHeiks:不必告诉它们如何可比,因为日期实现了可比的。考虑表。(新的TableRow分拣机(型号))