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 будет использовать соответствующий компаратор для сортировки целочисленных значений.

Другие вопросы по тегам