Сортировка и фильтрация таблиц в бд Лебедева Екатерина Сортировка строк В основе реализации сортировки и фильтрации строк в Mustang лежит абстрактный класс RowSorter. Класс RowSorter поддерживает два вида преобразований, в первом случае строки компонента JTable преобразуются в элементы базовой модели, во втором случае выполняется обратное преобразование. Данные преобразования позволяют производить фильтрацию и сортировку. Класс является достаточно обобщенным, чтобы работать как с объектами TableModel, так и с ListModel. Однако только класс TableRowSorter, предоставляемый Mustang может работать с компонентами JTable. JTable table = new JTable(model); RowSorter sorter = new TableRowSorter (model); table.setRowSorter(sorter); В первой строке модель ставится в соответствие таблице. Вторая строка создает объект RowSorter для данной модели. В третьей строке устанавливается соответствие объектов RowSorter и JTable. Данные действия позволяют производить сортировку столбца при нажатии на его заголовок. Повторное нажатие на тот же столбец инвертирует сортировку. void sorterChanged(RowSorterEvent e) Данный метод позволяет вам обновить текст в строке состояния или произвести другие дополнительные действия. Объект RowSorterEvent позволяет вам узнать количество строк появившихся или исчезнувших с экрана после сортировки объекта RowSorter. Фильтрация строк таблицы Вы можете связать объект RowFilter с классом TableRowSorter и использовать его для фильтрации содержимого таблицы. В абстрактном классе RowFilter определен один метод, применяемый для фильтрации: boolean include(RowFilter.Entry entry) Для каждого элемента модели, связанной с объектом RowSorter, данный метод определяет должен ли он отображаться для текущего представления модели. Для методов класса RowFilter принимающих в качестве аргумента индексы данной модели проверяется только набор столбцов, для которых переданы индексы. Если в качестве аргумента не передано ни одного индекса, то на совпадение проверяются все столбцы. |