Сортировка по нескольким столбцам в JTable

Я знаю, что JTable может сортировать по одному столбцу. Но можно ли разрешить сортировку по нескольким столбцам или мне нужно написать код самому?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
6
0
12 214
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

У вас должна быть возможность установить TableRowSorter и связанный с ним компаратор. Пример:

TableModel myModel = createMyTableModel();
JTable table = new JTable(myModel);
TableRowSorter t = new TableRowSorter(myModel);
t.setComparator(column that the comparator works against, Comparator<?> comparator);
table.setRowSorter(new TableRowSorter(myModel));

не связано с сортировкой по нескольким столбцам

kleopatra 14.12.2011 18:06

Загляните в JXTable. JXTable - это расширение JTable, которое поддерживает сортировку по нескольким столбцам, а также другие функции, которые JTable не предоставляет. Он находится в свободном доступе на JDNC / SwingLabs.

Ты уверен? На самом деле API JXTable утверждает: «Сортировка поддерживается только для одного столбца».

räph 27.10.2009 17:32

Хорошо, но с фильтрами работает. вам просто нужно поместить шаттлы в фильтрующий трубопровод

räph 27.10.2009 17:47
Ответ принят как подходящий

Вы можете отсортировать по нескольким столбцам, указав более одного ключа сортировки при вызове setSortKeys в RowSorter, который вы используете.

жаль, что это недоступно в java5

räph 27.10.2009 17:35

ETable из коллекции netbeans. Это часть org-netbeans-swing-outline.jar
Поиск в Google поможет его найти. ETable - это в первую очередь основа для Outline (TreeTable), но в него встроено упорядочение по многим столбцам, а также многие другие приятные функции.

«Я знаю, что Jtable может сортировать по одному столбцу. Но можно ли разрешить сортировку по нескольким столбцам, или мне нужно писать код самому?»

Сортировкой и фильтрацией таблиц управляет объект сортировщика. Самый простой способ предоставить объект сортировщика - установить для привязанного свойства autoCreateRowSorter значение true;

JTable table = new JTable();
table.setAutoCreateRowSorter(true);

Это действие определяет сортировщик строк, который является экземпляром javax.swing.table.TableRowSorter.

нет is wrong - a JTable definitely supports multi-column sorts (see setSortKeys as mentioned in another answer), only the visual clue is showing on the primary sort column only
kleopatra 21.02.2012 19:03

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