M
- тип модели, которая должна быть реализацией TableModel
public class TableRowSorter<M extends TableModel> extends DefaultRowSorter<M,Integer>
RowSorter
это обеспечивает сортировку и фильтрацию использования a TableModel
. Следующая выставочная сортировка добавления в качестве примера к a JTable
: TableModel myModel = createMyTableModel(); JTable table = new JTable(myModel); table.setRowSorter(new TableRowSorter(myModel));Это сделает все проводное соединение так, что, когда пользователь сделает соответствующий жест, такой как щелчок по заголовку столбца, таблица визуально сортирует.
JTable
's основанные на строке методы и JTable
's модель выбора обращаются к представлению а не базовой модели. Поэтому, необходимо преобразовать между двумя. Например, чтобы получить выбор с точки зрения myModel
Вы должны преобразовать индексы:
int[] selection = table.getSelectedRows(); for (int i = 0; i < selection.length; i++) { selection[i] = table.convertRowIndexToModel(selection[i]); }Так же выбрать строку в
JTable
основанный на координате от базовой модели делают инверсию: table.setRowSelectionInterval(table.convertRowIndexToView(row), table.convertRowIndexToView(row));
Предыдущий пример предполагает, что Вы не позволили фильтровать. Если Вы позволили фильтровать convertRowIndexToView
возвратится-1 для расположений, которые не видимы в представлении.
TableRowSorter
использование Comparator
s для того, чтобы сделать сравнения. Следующее определяет как a Comparator
выбирается для столбца:
Comparator
был определен для столбца setComparator
метод, используйте это. getColumnClass
String
, используйте Comparator
возвращенный Collator.getInstance()
. Comparable
, используйте a Comparator
это вызывает compareTo
метод. TableStringConverter
был определен, используйте это, чтобы преобразовать значения в String
s и затем используют Comparator
возвращенный Collator.getInstance()
. Comparator
возвращенный Collator.getInstance()
на следствиях вызова toString
на объектах. В дополнение к сортировке TableRowSorter
обеспечивает возможность фильтровать. Фильтр определяется, используя setFilter
метод. Следующий пример только покажет строки, содержащие строку "foo":
TableModel myModel = createMyTableModel(); TableRowSorter sorter = new TableRowSorter(myModel); sorter.setRowFilter(RowFilter.regexFilter(".*foo.*")); JTable table = new JTable(myModel); table.setRowSorter(sorter);
Если базовая структура модели изменяется ( modelStructureChanged
метод вызывается), следующее сбрасывается к их значениям по умолчанию: Comparator
s столбцом, текущим порядком сортировки, и является ли каждый столбец поддающимся сортировке. Порядок сортировки по умолчанию является естественным (то же самое как модель), и столбцы являются поддающимися сортировке по умолчанию.
TableRowSorter
имеет один формальный параметр типа: тип модели. Передача в типе, который соответствует точно Вашей модели, позволяет Вам фильтровать основанный на Вашей модели без кастинга. Сошлитесь на документацию RowFilter
для примера этого.
ПРЕДУПРЕЖДЕНИЕ: DefaultTableModel
возвращает столбец class Object
. Как таковой все сравнения будут сделаны, используя toString
. Это может быть излишне дорого. Если столбец только содержит один тип имеющий значение, такой как Integer
, следует переопределить getColumnClass
и возвратите соответствующее Class
. Это существенно увеличит производительность этого class.
JTable
, RowFilter
, DefaultTableModel
, Collator
, Comparator
DefaultRowSorter.ModelWrapper<M,I>
RowSorter. SortKey
Конструктор и Описание |
---|
TableRowSorter()
Создает a
TableRowSorter с пустой моделью. |
TableRowSorter(M model)
Создает a
TableRowSorter использование model как базовое TableModel . |
Модификатор и Тип | Метод и Описание |
---|---|
Comparator<?> |
getComparator(int column)
Возвраты
Comparator для указанного столбца. |
TableStringConverter |
getStringConverter()
Возвращает объект, ответственный за преобразование значений от модели до строк.
|
void |
setModel(M model)
Наборы
TableModel использовать в качестве базовой модели для этого TableRowSorter . |
void |
setStringConverter(TableStringConverter stringConverter)
Устанавливает объект, ответственный за преобразование значений от модели до строк.
|
protected boolean |
useToString(int column)
Возвраты, преобразовать ли значение в строку прежде, чем сделать сравнения, сортируя.
|
allRowsChanged, convertRowIndexToModel, convertRowIndexToView, getMaxSortKeys, getModel, getModelRowCount, getModelWrapper, getRowFilter, getSortKeys, getSortsOnUpdates, getViewRowCount, isSortable, modelStructureChanged, rowsDeleted, rowsInserted, rowsUpdated, rowsUpdated, setComparator, setMaxSortKeys, setModelWrapper, setRowFilter, setSortable, setSortKeys, setSortsOnUpdates, sort, toggleSortOrder
addRowSorterListener, fireRowSorterChanged, fireSortOrderChanged, removeRowSorterListener
public TableRowSorter()
TableRowSorter
с пустой моделью.public TableRowSorter(M model)
TableRowSorter
использование model
как базовое TableModel
.model
- базовое TableModel
использовать, null
обрабатывается как пустая модельpublic void setModel(M model)
TableModel
использовать в качестве базовой модели для этого TableRowSorter
. Значение null
может использоваться, чтобы установить пустую модель.model
- базовая модель, чтобы использовать, или null
public void setStringConverter(TableStringConverter stringConverter)
null
это используется, чтобы преобразовать любые объектные значения, у которых нет зарегистрированного Comparator
, к строкам.stringConverter
- объект, ответственный за преобразование значений от модели до строкpublic TableStringConverter getStringConverter()
public Comparator<?> getComparator(int column)
Comparator
для указанного столбца. Если a Comparator
не был определен, используя setComparator
метод a Comparator
будет возвращен основанный на столбце class (TableModel.getColumnClass
) из указанного столбца. Если столбец class String
, Collator.getInstance
возвращается. Если столбец class реализует Comparable
частное Comparator
возвращается, который вызывает compareTo
метод. Иначе Collator.getInstance
возвращается.getComparator
в class DefaultRowSorter<M extends TableModel,Integer>
column
- столбец, чтобы выбрать Comparator
для, с точки зрения базовой моделиComparator
для указанного столбцаIndexOutOfBoundsException
- если столбец вне диапазона базовой моделиprotected boolean useToString(int column)
ModelWrapper.getStringValueAt
будет использоваться, иначе ModelWrapper.getValueAt
будет использоваться. Это до подклассов, такой как TableRowSorter
, соблюдать это значение в их ModelWrapper
реализация.useToString
в class DefaultRowSorter<M extends TableModel,Integer>
column
- индексирование столбца, чтобы протестировать, с точки зрения базовой моделиIndexOutOfBoundsException
- если column
не допустимо
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92