2

我有一个JTable以下值:

姓名 年龄 钱

  13 SGD23

  B 41 新币 133 元

如果我单击标题(名称),它将排序为 A,B,再次单击,将是 B,A

但是为了钱,如果我点击它,我想对像 SGD 23,SGD 133 这样的值进行排序。但是,Swing TableRowSort 对值进行排序,例如 SGD 133,SGD23 。这是因为列值类是String。那么有人可以帮我做到这一点吗?请注意,货币的货币代码为 SGD。

4

1 回答 1

2

您需要实现一个Comparator知道如何对列中的值进行排序的方法,然后使用DefaultRowSorter.setComparator(...)

另一种方法是仅存储货币的数字部分并将 CurrencyCode 作为CellRenderer. 这样您就可以简单地对数值进行排序,而不是尝试调整字符串比较器以满足您的需要。

于 2013-10-22T04:58:51.680 回答