在线上有太多关于如何按列值对JTable的行进行排序的示例。
目前,我正在通过实现AbstractTableModel
并重写getColumnClass
来返回数据的实际类来执行此操作。然后调用setAutoCreateRowSorter
。
如何按行值对JTable中的列进行排序?
最佳答案
1)将所有值从TableHeader
提取到短数组(可能是AbstractTableModel
中的方法)
2)在数组内部循环并调用
TableColumn column = table.getColumnModel().moveColumn(columnIndex, newIndex);
3)所有使用Model v.s.添加视图(反之亦然)
table/model#convertXxxIndexToXxx
4)对于重置,您必须通过调用在
AbstractTableModel
中创建方法fireTableDataChanged(); or fireTableStructureChanged(); // not sure in this case
5)关于以上两个fireTableXxxXxx的通知
This can be a problem if you have added any custom renderers or editor to
the table as you would lose them (by @camickr)