我有一个JTable
,其中包含以下值:
Name age money A 13 SGD23 B 41 SGD133
如果我点击标题(名称),它将排序为A,B,再次点击,将是B,A
但是为了钱,如果我点击它,我想要像SGD 23,SGD 133那样排序。但是,Swing TableRowSort对SGD 133,SGD23等值进行排序。这是因为列值类是String。那么有人可以帮我这么做吗?请注意,这笔钱有CurrencyCode SGD。
答案 0 :(得分:2)
您需要实现一个Comparator
,它知道如何对列中的值进行排序,然后使用DefaultRowSorter.setComparator(...)
另一种方法是仅存储货币的数字部分,并将CurrencyCode应用为CellRenderer
的一部分。这样你就可以简单地对数值进行排序,而不是试图调整String Comparator来满足你的需求。