【发布时间】:2023-03-16 13:03:01
【问题描述】:
在 Java Swing 应用程序(内置于 Netbeans 6.9)中,我有一个包含 21 列的 JTable。其中大约 14 个列包含双精度值。前 6 列是日期和字符串。在第 7 列,双打开始。当应用程序运行时,通过单击表格的标题行,表格中的每一列都会正确排序——除了第 7 列。该表认为此数据是字符串类型,并将其排序为字符串。
如果我将数据移动到另一列,则该新列现在将作为字符串排序。所以问题不在于特定的列,而在于这些数据。
但是,数据被定义为double,纯粹简单:
double x;
public double getX() {
return x;
}
正确排序的双精度列的定义方式相同。
我什至尝试将这个有问题的数据转换为双精度数据(即使它已经是双精度数据),但没有任何区别。
我还尝试为不会排序为数字的列设置单元格渲染器(即使其他列不需要此步骤)。
table.getColumnModel().getColumn(6).setCellRenderer(table.getDefaultRenderer(Double.class));
还有什么可能导致这列数字按字符串排序?
【问题讨论】:
-
看起来像问题 7299289 的重复。请检查stackoverflow.com/questions/7299289/…
-
我不认为这个问题与问题 7299289 相同。但是,我确实靠运气解决了这个问题,并且解决方案确实涉及在我的 DefaultTableModel 子类中实现 getColumnClass。我会回答我的问题并发布我的解决方案。