Сортировка нескольких столбцов в JTable
Вопрос
я знаю это JTable
можно сортировать по одному столбцу.Но можно ли разрешить сортировку по нескольким столбцам или мне нужно самому писать код?
Решение
Вы можете сортировать по нескольким столбцам, указав более одного ключа сортировки при вызове setSortKeys
в RowSorter
ты используешь.
Другие советы
Посмотрите JXTable.JXTable — это расширение JTable, которое поддерживает сортировку по нескольким столбцам, а также другие функции, которые JTable не предоставляет.Он доступен бесплатно на JDNC/SwingLabs.
У вас должна быть возможность установить 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));
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.