M
- тип базовой моделиpublic abstract class RowSorter<M> extends Object
RowSorter
обеспечивает основание для сортировки и фильтрации. Вне создания и установки a RowSorter
, Вы очень редко должны взаимодействовать с тем непосредственно. Обратитесь к TableRowSorter
для конкретной реализации RowSorter
для JTable
.
RowSorter
's основная роль должен обеспечить отображение между двумя системами координат: это представления (например a 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
реализации не должны установить слушателя на модели. Вместо этого представление class вызовет в RowSorter
когда модель изменяется. Например, если строка обновляется в a TableModel
JTable
вызывает rowsUpdated
. Когда модель изменяется, представление может вызвать в любой из следующих методов: modelStructureChanged
, allRowsChanged
, rowsInserted
, rowsDeleted
и rowsUpdated
.
TableRowSorter
Модификатор и Тип | Класс и Описание |
---|---|
static class |
RowSorter. SortKey
SortKey описывает порядок сортировки для определенного столбца.
|
Конструктор и Описание |
---|
RowSorter()
Создает a
RowSorter . |
Модификатор и Тип | Метод и Описание |
---|---|
void |
addRowSorterListener(RowSorterListener l)
Добавляет a
RowSorterListener получить уведомление об этом RowSorter . |
abstract void |
allRowsChanged()
Вызванный, когда содержание базовой модели полностью изменилось.
|
abstract int |
convertRowIndexToModel(int index)
Возвращает расположение
index с точки зрения базовой модели. |
abstract int |
convertRowIndexToView(int index)
Возвращает расположение
index с точки зрения представления. |
protected void |
fireRowSorterChanged(int[] lastRowIndexToModel)
Уведомляет слушателя, что отображение изменилось.
|
protected void |
fireSortOrderChanged()
Уведомляет слушателя, что порядок сортировки изменился.
|
abstract M |
getModel()
Возвращает базовую модель.
|
abstract int |
getModelRowCount()
Возвращает число строк в базовой модели.
|
abstract List<? extends RowSorter.SortKey> |
getSortKeys()
Возвращает текущие ключи сортировки.
|
abstract int |
getViewRowCount()
Возвращает число строк в представлении.
|
abstract void |
modelStructureChanged()
Вызванный, когда базовая структура модели полностью изменилась.
|
void |
removeRowSorterListener(RowSorterListener l)
Удаляет a
RowSorterListener . |
abstract void |
rowsDeleted(int firstRow, int endRow)
Вызванный, когда строки были удалены из базовой модели в указанном диапазоне (включительно).
|
abstract void |
rowsInserted(int firstRow, int endRow)
Вызванный, когда строки были вставлены в базовую модель в указанном диапазоне (включительно).
|
abstract void |
rowsUpdated(int firstRow, int endRow)
Вызванный, когда строки были изменены в базовой модели между указанным диапазоном (включительно).
|
abstract void |
rowsUpdated(int firstRow, int endRow, int column)
Вызванный, когда столбец в строках были обновлены в базовой модели между указанным диапазоном.
|
abstract void |
setSortKeys(List<? extends RowSorter.SortKey> keys)
Устанавливает текущие ключи сортировки.
|
abstract void |
toggleSortOrder(int column)
Инвертирует порядок сортировки указанного столбца.
|
public abstract M getModel()
public abstract void toggleSortOrder(int column)
Если это приводит к изменению порядка сортировки и сортировке, соответствующему RowSorterListener
уведомление будет отправлено.
column
- столбец, чтобы переключить упорядочивание вида, с точки зрения базовой моделиIndexOutOfBoundsException
- если столбец вне диапазона базовой моделиpublic abstract int convertRowIndexToModel(int index)
index
с точки зрения базовой модели. Таким образом, для строки index
в координатах представления это возвращается, строка индексируют с точки зрения базовой модели.index
- строка индексирует с точки зрения базового представленияIndexOutOfBoundsException
- если index
вне диапазона представленияpublic abstract int convertRowIndexToView(int index)
index
с точки зрения представления. Таким образом, для строки index
в координатах базовой модели это возвращается, строка индексируют с точки зрения представления.index
- строка индексирует с точки зрения базовой моделиIndexOutOfBoundsException
- если index
вне диапазона моделиpublic abstract void setSortKeys(List<? extends RowSorter.SortKey> keys)
keys
- новое SortKeys
; null
сокращение для того, чтобы определить пустой список, указывая, что представление должно быть несортированоpublic abstract List<? extends RowSorter.SortKey> getSortKeys()
non-null List
и может возвратить неподдающееся изменению List
. Если Вы должны изменить ключи сортировки, сделайте копию возвращенного List
, видоизмените копию и вызовите setSortKeys
с новым списком.public abstract int getViewRowCount()
getModelRowCount()
public abstract int getModelRowCount()
getViewRowCount()
public abstract void modelStructureChanged()
TableModel
измененный, этот метод был бы вызван. Вы обычно не вызываете этот метод. Этот метод общедоступен, чтобы позволить классам представления вызывать это.
public abstract void allRowsChanged()
Вы обычно не вызываете этот метод. Этот метод общедоступен, чтобы позволить классам представления вызывать это.
public abstract void rowsInserted(int firstRow, int endRow)
Параметры дают индексы произведенного диапазона. Первый параметр с точки зрения модели перед изменением, и должен быть меньше чем или равным размеру модели перед изменением. Второй параметр с точки зрения модели после изменения и должен быть меньше чем размер модели после изменения. Например, если Вы имеете модель с 5 строками и добавляете 3 элемента до конца модели, индексы 5, 7.
Вы обычно не вызываете этот метод. Этот метод общедоступен, чтобы позволить классам представления вызывать это.
firstRow
- первая строкаendRow
- последняя строкаIndexOutOfBoundsException
- если или параметр недопустим, или firstRow
> endRow
public abstract void rowsDeleted(int firstRow, int endRow)
Параметры дают индексы произведенного диапазона и с точки зрения модели перед изменением. Например, если Вы имеете модель с 5 строками и удаляете 3 элемента из конца модели, индексы 2, 4.
Вы обычно не вызываете этот метод. Этот метод общедоступен, чтобы позволить классам представления вызывать это.
firstRow
- первая строкаendRow
- последняя строкаIndexOutOfBoundsException
- если или параметр вне диапазона модели перед изменением, или firstRow
> endRow
public abstract void rowsUpdated(int firstRow, int endRow)
Вы обычно не вызываете этот метод. Этот метод общедоступен, чтобы позволить классам представления вызывать это.
firstRow
- первая строка, с точки зрения базовой моделиendRow
- последняя строка, с точки зрения базовой моделиIndexOutOfBoundsException
- если или параметр вне диапазона базовой модели, или firstRow
> endRow
public abstract void rowsUpdated(int firstRow, int endRow, int column)
Вы обычно не вызываете этот метод. Этот метод общедоступен, чтобы позволить классам представления вызывать это.
firstRow
- первая строка, с точки зрения базовой моделиendRow
- последняя строка, с точки зрения базовой моделиcolumn
- столбец, который изменился, с точки зрения базовой моделиIndexOutOfBoundsException
- если любой параметр вне диапазона базовой модели после изменения, firstRow
> endRow
, или column
вне диапазона базовой моделиpublic void addRowSorterListener(RowSorterListener l)
RowSorterListener
получить уведомление об этом RowSorter
. Если тот же самый слушатель будет добавлен не раз, то это получит многократные уведомления. Если l
null
ничто не делается.l
- RowSorterListener
public void removeRowSorterListener(RowSorterListener l)
RowSorterListener
. Если l
null
ничто не делается.l
- RowSorterListener
protected void fireSortOrderChanged()
protected void fireRowSorterChanged(int[] lastRowIndexToModel)
lastRowIndexToModel
- отображение от индексов модели, чтобы просмотреть индексы до вида, может быть null
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92