0

我有一个包含两列fileNamedate modified的JTable。我为第一列添加了名称字符串,并为第二个 dateTime 列添加了名称。new Date(tempFile.lastModified())

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

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

但是修改日期列的排序结果不对。

在此处输入图像描述

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

编辑:

在注释掉几乎所有额外的代码并且不按日期字符串呈现后,我得到了以下结果。默认情况下,在 JTable Java 中似乎按天对Date对象进行排序。我将进行更多测试以查看我的代码有什么问题。 在此处输入图像描述

编辑2

我已经测试并弄清楚了。如果您使用 DefaultTableModel 而不覆盖其 getColumnClass() 方法,您将遇到 Date 或 Number 列的问题。

4

1 回答 1

0

EDIT2:当然。在链接到 a 的 jtable 中遇到同样的问题,tablemodel我可以确认问题是由于与tableModel. 令人惊讶的是 Date 列属于 Object 类,无论DefaultTableModel在覆盖 public Object 时在我的子类中返回了完美类型 Date getValueAt(int row, int col)

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

于 2013-01-03T08:33:27.653 回答