对未显示的值进行 JTable 排序



我有一个包含多列的 JTable,其中一列包含一个人的年龄,但是当它是该人的出生日期时,它将显示为"20 (+1(",因此此列来自类型字符串。

这会导致对 JTable 进行排序时出现问题,因为当您按照以下年龄对其进行排序时,您会得到此顺序: 2 21 24 3 34 38 5 60

虽然我想根据人员年龄值来扭曲它,该值在 person 对象中存储为整数,它应该得到以下顺序: 2 3 5 21 24 34 38 60

当然,我可以删除"(+1("部分,但这是一个很好的功能,表明该单元格中的值已更改。

不确定是否有解决此问题的方法,因为我可能使用了"错误"列。

谢谢

根据如何使用表格:排序和过滤

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

TableRowSorter 使用 java.util.Comparator 对象对其行进行排序。实现此接口的类必须提供一个名为 compare 的方法,该方法定义如何比较任何两个对象以进行排序。

Comparator<String> comparator = new Comparator<String>() {
public int compare(String s1, String s2) {
return Integer.valueOf(s1).compareTo(Integer.valueOf(s2));
}
};

最新更新