сортировать записи JTable, не щелкая заголовок столбца - PullRequest
3 голосов
/ 07 июля 2011

Я реализовал сортировку строк в JTable, используя DefaultRowSorter и мой собственный класс сортировщика строк. Все отлично работает, нажав на заголовок столбца, чтобы отсортировать таблицу.

Но что делать, если я хочу вызвать операцию сортировки из кода моего приложения (без нажатия на заголовок столбца). Какой метод мне нужно вызвать?

EDIT:

Я инициализирую сортировщик строк таблицы следующим образом:

public void buildRowSorter() {
        TableRowSorter<MyModel> sorter = new TableRowSorter<MyModel>((MyModel)this.table.getModel());

        try {
            sorter.setComparator(0, new MyCustomComparator<Double>(sorter,0));
            sorter.setComparator(1, new MyCustomComparator<String>(sorter,1));
        } catch (ParseException e) {
            e.printStackTrace();
        }

        this.table.setRowSorter(sorter);
    }

Теперь я хотел бы, имея ссылку на JTable (таблицу), извлечь связанный сортировщик строк для определенного столбца моей модели и вызвать на нем операцию сортировки.

Ответы [ 2 ]

4 голосов
/ 07 июля 2011

Насколько я вижу, у вас есть собственный компаратор (почему это сохраняет ссылку на сортировщик? Выглядит подозрительно), а не пользовательский RowSorter.

Предполагаемый способ изменить сортировку - вызвать toggleSortOrder (column) в RowSorter. Для более детального контроля вам может понадобиться доступ к DefaultRowSorter, например. его метод setSortKeys.

2 голосов
/ 07 июля 2011

Попробуйте вызвать sort() метод DefaultRowSorter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...