java在JTable中按列对行进行排序
单击我的JTable上的列标题时,它会按字母顺序对行进行排序。这适用于我所有的专栏,只有一篇除外。此列中的值均为字符串,但包含数字。我需要根据它们的十进制值而不是字符串值对它们进行排序
你知道如何做到这一点吗
你可以在下面搜索框中键入要查询的问题!
单击我的JTable上的列标题时,它会按字母顺序对行进行排序。这适用于我所有的专栏,只有一篇除外。此列中的值均为字符串,但包含数字。我需要根据它们的十进制值而不是字符串值对它们进行排序
你知道如何做到这一点吗
# 1 楼答案
请阅读关于JTable的教程,其中包含TableRowSorter示例
答案是这些代码行,正确设置列类
# 2 楼答案
默认的行分类器将根据列类进行排序。如果column类是Object(默认值),那么它使用
toString()
方法。如果您可以将输入到列中的内容更改为实现可比较接口的内容(例如Integer/Double),那么它将使用该比较器。您还必须更改表模型上的列类为此,必须扩展DefaultTableModel(或实现AbstractTableModel或TableModel)并重写getColumnClass()方法
如果无法更改进入列中的数据(出于某种原因,您希望在其中存储字符串),则必须修改表的行分类器