在 JTable 中使用自动行排序时,每行的排序索引都是自动生成的。要获取当前排序的列索引,可以使用以下代码:
TableRowSorter<TableModel> sorter = (TableRowSorter<TableModel>)table.getRowSorter();
int columnIndex = sorter.convertRowIndexToModel(0); // 0 表示第一行(即当前排序的行)
其中,convertRowIndexToModel()
方法用于将行索引转换为相应的数据模型中的具体位置。而 getColumnSortOrder()
方法则可以获取当前排序的列索引,代码如下:
List<? extends RowSorter.SortKey> sortKeys = sorter.getSortKeys();
if (sortKeys.size() > 0) {
RowSorter.SortKey sortKey = sortKeys.get(0); // 获取第一个排序类型
int columnIndex = sortKey.getColumn();