Класс RowSorter<M>
- Параметры типа:
-
M- тип базовой модели
- Прямые известные подклассы:
DefaultRowSorter
public abstract class RowSorter<M> extends Object
RowSorter предоставляет основу для сортировки и фильтрации. Помимо создания и установки RowSorter, вам очень редко нужно взаимодействовать с ним напрямую. Обратитесь к TableRowSorter для конкретной реализации RowSorter для JTable. Основная роль RowSorter заключается в обеспечении сопоставления между двумя системами координат: представлением (например, JTable) и базовым источником данных, обычно моделью.
Представление вызывает следующие методы у RowSorter:
-
toggleSortOrder— Представление вызывает это, когда произошла соответствующая пользовательская жесть, чтобы запустить сортировку. Например, пользователь щелкнул заголовок столбца в таблице. - Один из методов изменения модели — Представление вызывает метод изменения модели, когда базовая модель изменилась. Может быть зависимость порядка в том, как события доставляются, поэтому
RowSorterне должен обновлять своё отображение до тех пор, пока не будет вызван один из этих методов.
convertRowIndexToModel, convertRowIndexToView и getViewRowCount, эти методы должны быть быстрыми. RowSorter уведомляет об изменениях с помощью RowSorterListener. Отправляются два типа уведомлений:
-
RowSorterEvent.Type.SORT_ORDER_CHANGED— уведомляет слушателей о том, что порядок сортировки изменился. За этим обычно следует уведомление о том, что сортировка изменилась. -
RowSorterEvent.Type.SORTED— уведомляет слушателей о том, что отображение, поддерживаемоеRowSorter, изменилось каким-либо образом.
RowSorter обычно не имеют взаимно однозначного отображения с базовой моделью, но могут. Например, если база данных выполняет сортировку, toggleSortOrder может обратиться к базе данных (в фоновом потоке) и переопределить методы отображения, чтобы вернуть переданный аргумент. Конкретные реализации RowSorter должны ссылаться на модель, такую как TableModel или ListModel. Классы представления, такие как JTable и JList, также будут иметь ссылку на модель. Чтобы избежать зависимостей порядка, реализации RowSorter не должны устанавливать слушателя на модели. Вместо этого класс представления будет обращаться к RowSorter при изменении модели. Например, если строка обновлена в TableModel JTable вызывает rowsUpdated. При изменении модели представление может обратиться к любому из следующих методов: modelStructureChanged, allRowsChanged, rowsInserted, rowsDeleted и rowsUpdated.
- С:
- 1.6
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
RowSorter.SortKey |
SortKey описывает порядок сортировки для определенного столбца. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
RowSorter() |
Создает RowSorter. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addRowSorterListener |
Добавляет RowSorterListener для получения уведомлений об этом RowSorter. |
abstract void |
allRowsChanged() |
Вызывается, когда содержимое базовой модели полностью изменилось. |
abstract int |
convertRowIndexToModel |
Возвращает расположение index в терминах базовой модели. |
abstract int |
convertRowIndexToView |
Возвращает расположение index в терминах представления. |
protected void |
fireRowSorterChanged |
Уведомляет слушателя о том, что отображение изменилось. |
protected void |
fireSortOrderChanged() |
Уведомляет слушателя о том, что порядок сортировки изменился. |
abstract M |
getModel() |
Возвращает базовую модель. |
abstract int |
getModelRowCount() |
Возвращает количество строк в базовой модели. |
abstract List<? extends RowSorter.SortKey> |
getSortKeys() |
Возвращает текущие ключи сортировки. |
abstract int |
getViewRowCount() |
Возвращает количество строк в представлении. |
abstract void |
modelStructureChanged() |
Вызывается, когда структура базовой модели полностью изменилась. |
void |
removeRowSorterListener |
Удаляет RowSorterListener. |
abstract void |
rowsDeleted |
Вызывается, когда строки были удалены из базовой модели в указанном диапазоне (включительно). |
abstract void |
rowsInserted |
Вызывается, когда строки были вставлены в базовую модель в указанном диапазоне (включительно). |
abstract void |
rowsUpdated |
Вызывается, когда строки были изменены в базовой модели между указанным диапазоном (включительно). |
abstract void |
rowsUpdated |
Вызывается, когда столбцы в строках были обновлены в базовой модели между указанным диапазоном. |
abstract void |
setSortKeys |
Устанавливает текущие ключи сортировки. |
abstract void |
toggleSortOrder |
Инвертирует порядок сортировки указанного столбца. |
Подробное описание конструкторов
RowSorter
public RowSorter()
RowSorter.Подробное описание методов
getModel
public abstract M getModel()
- Возвращает:
- базовую модель
toggleSortOrder
public abstract void toggleSortOrder(int column)
Если это приводит к изменению порядка сортировки и сортировке, соответствующее уведомление RowSorterListener будет отправлено.
- Параметры:
-
column- столбец для инвертирования порядка сортировки, с точки зрения базовой модели - Исключения:
-
IndexOutOfBoundsException- если столбец выходит за пределы диапазона базовой модели
convertRowIndexToModel
public abstract int convertRowIndexToModel(int index)
index с точки зрения базовой модели. То есть, для строки index в координатах представления это возвращает индекс строки с точки зрения базовой модели.- Параметры:
-
index- индекс строки с точки зрения базового представления - Возвращает:
- индекс строки с точки зрения представления
- Исключения:
-
IndexOutOfBoundsException- еслиindexнаходится за пределами диапазона представления
convertRowIndexToView
public abstract int convertRowIndexToView(int index)
index с точки зрения представления. То есть, для строки index в координатах базовой модели это возвращает индекс строки с точки зрения представления.- Параметры:
-
index- индекс строки с точки зрения базовой модели - Возвращает:
- индекс строки с точки зрения представления или -1, если индекс был отфильтрован из представления
- Исключения:
-
IndexOutOfBoundsException- еслиindexнаходится за пределами диапазона модели
setSortKeys
public abstract void setSortKeys(List<? extends RowSorter.SortKey> keys)
- Параметры:
-
keys- новыеSortKeys;null— сокращение для указания пустого списка, указывающего, что представление должно быть несортированным
getSortKeys
public abstract List<? extends RowSorter.SortKey> getSortKeys()
non-null List и может вернуть неизменяемый List. Если вам нужно изменить ключи сортировки, создайте копию возвращаемого List, измените копию и вызовите setSortKeys с новым списком.- Возвращает:
- текущий порядок сортировки
getViewRowCount
public abstract int getViewRowCount()
- Возвращает:
- количество строк в представлении
- См. также:
getModelRowCount
public abstract int getModelRowCount()
- Возвращает:
- количество строк в базовой модели
- См. также:
modelStructureChanged
public abstract void modelStructureChanged()
TableModel изменилось, этот метод будет вызван. Обычно вы не вызываете этот метод. Этот метод является публичным, чтобы разрешить классам представления вызывать его.
allRowsChanged
public abstract void allRowsChanged()
Обычно вы не вызываете этот метод. Этот метод является публичным, чтобы разрешить классам представления вызывать его.
rowsInserted
public abstract void rowsInserted(int firstRow, int endRow)
Аргументы предоставляют индексы затронутого диапазона. Первый аргумент — с точки зрения модели до изменения, и должен быть меньше или равен размеру модели до изменения. Второй аргумент — с точки зрения модели после изменения, и должен быть меньше размера модели после изменения. Например, если у вас есть модель из 5 строк и вы добавляете 3 элемента в конец модели, индексы составляют 5, 7.
Обычно вы не вызываете этот метод. Этот метод является публичным, чтобы разрешить классам представления вызывать его.
- Параметры:
-
firstRow- первая строка -
endRow- последняя строка - Исключения:
-
IndexOutOfBoundsException- если любой аргумент недопустим, илиfirstRow>endRow
rowsDeleted
public abstract void rowsDeleted(int firstRow, int endRow)
Аргументы предоставляют индексы затронутого диапазона и относятся к модели до изменения. Например, если у вас есть модель из 5 строк и вы удаляете 3 элемента из конца модели, индексы составляют 2, 4.
Обычно вы не вызываете этот метод. Этот метод является публичным, чтобы разрешить классам представления вызывать его.
- Параметры:
-
firstRow- первая строка -
endRow- последняя строка - Исключения:
-
IndexOutOfBoundsException- если любой аргумент находится за пределами диапазона модели до изменения, илиfirstRow>endRow
rowsUpdated
public abstract void rowsUpdated(int firstRow, int endRow)
Обычно вы не вызываете этот метод. Этот метод является публичным, чтобы разрешить классам представления вызывать его.
- Параметры:
-
firstRow- первая строка, с точки зрения базовой модели -
endRow- последняя строка, с точки зрения базовой модели - Исключения:
-
IndexOutOfBoundsException- если любой аргумент находится за пределами диапазона базовой модели, илиfirstRow>endRow
rowsUpdated
public abstract void rowsUpdated(int firstRow, int endRow, int column)
Обычно вы не вызываете этот метод. Этот метод является публичным, чтобы разрешить классам представления вызывать его.
- Параметры:
-
firstRow- первая строка, с точки зрения базовой модели -
endRow- последняя строка, с точки зрения базовой модели -
column- столбец, который изменился, с точки зрения базовой модели - Исключения:
-
IndexOutOfBoundsException- если любой аргумент находится за пределами диапазона базовой модели после изменения,firstRow>endRow, илиcolumnнаходится за пределами диапазона базовой модели
addRowSorterListener
public void addRowSorterListener(RowSorterListener l)
RowSorterListener для получения уведомлений об этом RowSorter. Если один и тот же слушатель добавляется более одного раза, он получит несколько уведомлений. Если l равен null, ничего не делается.- Параметры:
-
l-RowSorterListener
removeRowSorterListener
public void removeRowSorterListener(RowSorterListener l)
RowSorterListener. Если l равен null, ничего не делается.- Параметры:
-
l-RowSorterListener
fireSortOrderChanged
protected void fireSortOrderChanged()
fireRowSorterChanged
protected void fireRowSorterChanged(int[] lastRowIndexToModel)
- Параметры:
-
lastRowIndexToModel- отображение от индексов модели к индексам представления до сортировки, может бытьnull
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/swing/RowSorter.html