Класс RowSorter<M>
- Параметры типа:
M- тип базовой модели
- Непосредственные известные подклассы:
DefaultRowSorter
public abstract class RowSorter<M> extends Object
RowSorter предоставляет основу для сортировки и фильтрации. Помимо создания и установки RowSorter, обычно нет необходимости взаимодействовать с ним напрямую. Конкретную реализацию RowSorter для JTable см. в описании TableRowSorter. Основная роль 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 |
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 |
Изменяет порядок сортировки указанного столбца на обратный. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, является ли другой объект «равным» этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Будит один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Будит все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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, 2025, 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.