我有一个JTable
以下值:
姓名 年龄 钱 13 SGD23 B 41 新币 133 元
如果我单击标题(名称),它将排序为 A,B,再次单击,将是 B,A
但是为了钱,如果我点击它,我想对像 SGD 23,SGD 133 这样的值进行排序。但是,Swing TableRowSort 对值进行排序,例如 SGD 133,SGD23 。这是因为列值类是String。那么有人可以帮我做到这一点吗?请注意,货币的货币代码为 SGD。
您需要实现一个Comparator
知道如何对列中的值进行排序的方法,然后使用DefaultRowSorter.setComparator(...)
另一种方法是仅存储货币的数字部分并将 CurrencyCode 作为CellRenderer
. 这样您就可以简单地对数值进行排序,而不是尝试调整字符串比较器以满足您的需要。