JTable RowSorter после выполнения операций со значениями ячеек
У меня есть ячейки, с которыми мне нужно выполнить некоторые операции перед сортировкой строк. Например: если задана строка, я конвертирую ее в сумму значений ASCII. И затем я хочу отсортировать JTable согласно суммам значений ASCII. Код ниже предназначен для сортировки по алфавиту. Но я этого не хочу.
DefaultRowSorter sorter = ((DefaultRowSorter) jTable1.getRowSorter());
ArrayList list_ar = new ArrayList();
list_ar.add(new RowSorter.SortKey(2, SortOrder.ASCENDING));
sorter.setSortKeys(list_ar);
sorter.sort();
Я пытался экспериментировать и манипулировать arraylist (list_ar
), но Arraylist при преобразовании в массив Object дает адреса в качестве своих элементов. Пожалуйста, порекомендуйте мне правильный способ выполнения таких операций.
1 ответ
Код ниже предназначен для сортировки по алфавиту. Но я этого не хочу.
Не храните строку в TableModel.
Вместо этого храните Integer
значение. Вам также нужно будет переопределить getColumnClass()
метод TableModel для возврата Integer.class
для этого столбца. Затем JTable будет использовать соответствующий компаратор для сортировки целочисленных значений.