在JTable中对数字进行排序

Kon*_*che 2 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);
Run Code Online (Sandbox Code Playgroud)

为避免这种情况,有以下方法:

sorter.setComparator(column,comparator);
Run Code Online (Sandbox Code Playgroud)

由于我的数字只有Integer,Long和Double,我不明白为什么我应该定义一个简单的标准java.lang类比较器.有没有更简单的方法?

Sta*_*avL 6

您应该为列的类定义Number.

请参见TableModel

public Class<?> getColumnClass(int columnIndex);
Run Code Online (Sandbox Code Playgroud)