Java 在JTable中对数字进行排序

Java 在JTable中对数字进行排序,java,swing,Java,Swing,如何实现JTable中只包含数字的列的排序?有一个类TableRowSorter。但是,使用此方法会导致以下结果:对于每个数字,通过调用toString来获取字符串表示,然后对其进行比较。例如,我收到的是: 100,13,2,22,9 而不是2,9,13,22,100 TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(table); table.setRowSorter(sorter);

如何实现JTable中只包含数字的列的排序?有一个类
TableRowSorter
。但是,使用此方法会导致以下结果:对于每个数字,通过调用toString来获取字符串表示,然后对其进行比较。例如,我收到的是:

100,13,2,22,9 而不是2,9,13,22,100

TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(table);
table.setRowSorter(sorter);

由于我的数字只有整数、长数和双精度,我不明白为什么我应该定义一个标准java.lang类的简单比较器。有更简单的方法吗?

您应该为列的类定义编号

见表格模型

public Class<?> getColumnClass(int columnIndex);
公共类getColumnClass(int-columnIndex);

您的表格模型是如何定义的?如果
getColumnClass
方法返回
Integer.class
(或者
Long.class
,或者
Number.class
,这取决于列包含的内容),那么排序应该是正确的,您不必配置任何特定的行排序器。

您的模型为getColumnClass()返回什么类?是整数还是字符串?很有魅力,谢谢。现在,数字也以更自然的方式呈现在眼前。
public Class<?> getColumnClass(int columnIndex);