我有一个 JTable ,有两列, fileName 和日期修改。我为第一列添加了名称 String ,并为第二个dateTime列添加了new Date(tempFile.lastModified())
。
我将dateTime列呈现为new SimpleDateFormat("MM/dd/yy HH:mm:ss")
字符串。
我也启用了m_listTbl.setAutoCreateRowSorter(true);
但修改日期列中的排序结果不正确。
这是为什么?我还需要编写自己的分拣机吗?
修改
在注释掉几乎所有额外代码并且没有由日期字符串呈现之后,我得到了以下结果。默认情况下,JTable Java排序日期对象默认为天。我会测试更多以查看我的代码有什么问题。
EDIT2
我已经测试并想通了。如果使用DefaultTableModel而不覆盖其getColumnClass()方法,则会遇到Date或Number列的问题。
答案 0 :(得分:0)
EDIT2:绝对。在链接到tablemodel
的jtable中遇到同样的问题我可以确认问题是由与tableModel
中的列值(EDIT2)相关联的类引起的。令人惊讶的是Date列是Object类,无论完美类型是什么,当覆盖公共对象DefaultTableModel
时,我的子类getValueAt(int row, int col)
中返回了Date。
解决方法是覆盖getColumnClass
子类中的DefaultTableModel
。如果不这样做,在对Date日期列进行排序时,对Object for Dates进行排序,结果很奇怪。