Spec-Zone.ru › OpenJDK 27

Class RowFilter<M,I>

java.lang.Object
javax.swing.RowFilter<M,I>
Параметры типа:
M - тип модели; например, PersonModel
I - тип идентификатора; при использовании TableRowSorter это будет Integer
public abstract class RowFilter<M,I> extends Object
RowFilter используется для фильтрации записей модели, чтобы они не отображались в представлении. Например, RowFilter, связанный с JTable, может пропускать только строки, содержащие столбец с определенной строкой. Значение термина запись зависит от типа компонента. Например, когда фильтр связан с JTable, запись соответствует строке; когда он связан с JTree, запись соответствует узлу.

Подклассы должны переопределять метод include, чтобы указать, следует ли отображать запись в представлении. Аргумент Entry можно использовать для получения значений в каждом из столбцов этой записи. В следующем примере показан метод include, который пропускает только записи, содержащие одно или несколько значений, начинающихся со строки «a»:

RowFilter<Object,Object> startsWithAFilter = new RowFilter<Object,Object>() {
  public boolean include(Entry<? extends Object, ? extends Object> entry) {
    for (int i = entry.getValueCount() - 1; i >= 0; i--) {
      if (entry.getStringValue(i).startsWith("a")) {
        // The value starts with "a", include it
        return true;
      }
    }
    // None of the columns start with "a"; return false so that this
    // entry is not shown
    return false;
  }
};
RowFilter имеет два формальных параметра типа, позволяющих создать RowFilter для конкретной модели. Например, в следующем примере предполагается конкретная модель, содержащая объекты типа Person. Будут отображаться только Persons, возраст которых превышает 20:
RowFilter<PersonModel,Integer> ageFilter = new RowFilter<PersonModel,Integer>() {
  public boolean include(Entry<? extends PersonModel, ? extends Integer> entry) {
    PersonModel personModel = entry.getModel();
    Person person = personModel.getPerson(entry.getIdentifier());
    if (person.getAge() > 20) {
      // Returning true indicates this row should be shown.
      return true;
    }
    // Age is <= 20, don't show it.
    return false;
  }
};
PersonModel model = createPersonModel();
TableRowSorter<PersonModel> sorter = new TableRowSorter<PersonModel>(model);
sorter.setRowFilter(ageFilter);
Начиная с версии:
1.6
См. также:
  • TableRowSorter

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static enum  RowFilter.ComparisonType
Перечисление возможных значений сравнения, поддерживаемых некоторыми фильтрами RowFilter по умолчанию.
static class  RowFilter.Entry<M,I>
Объект Entry передается экземплярам RowFilter, позволяя фильтру получать значение данных записи и, таким образом, определять, следует ли отображать запись.

Краткое описание конструкторов

RowFilter()
Модификатор Конструктор Описание
protected
Конструктор, предназначенный для вызова подклассами.

Краткое описание методов

Модификатор и тип Метод Описание
static <M,I> RowFilter<M,I> andFilter(Iterable<? extends RowFilter<? super M, ? super I>> filters)
Возвращает RowFilter, включающий записи, если все переданные фильтры включают эту запись.
static <M,I> RowFilter<M,I> dateFilter(RowFilter.ComparisonType type, Date date, int... indices)
Возвращает RowFilter, включающий записи, имеющие хотя бы одно значение Date, соответствующее указанным критериям.
abstract boolean include(RowFilter.Entry<? extends M, ? extends I> entry)
Возвращает true, если указанную запись следует отображать; возвращает false, если запись следует скрыть.
static <M,I> RowFilter<M,I> notFilter(RowFilter<M,I> filter)
Возвращает RowFilter, включающий записи, если переданный фильтр не включает эту запись.
static <M,I> RowFilter<M,I> numberFilter(RowFilter.ComparisonType type, Number number, int... indices)
Возвращает RowFilter, включающий записи, имеющие хотя бы одно значение Number, соответствующее указанным критериям.
static <M,I> RowFilter<M,I> orFilter(Iterable<? extends RowFilter<? super M, ? super I>> filters)
Возвращает RowFilter, включающий записи, если запись включена хотя бы одним из переданных фильтров.
static <M,I> RowFilter<M,I> regexFilter(String regex, int... indices)
Возвращает RowFilter, использующий регулярное выражение для определения включаемых записей.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
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(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно вследствие вызова метода notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно вследствие вызова метода notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

RowFilter

protected RowFilter()
Конструктор, предназначенный для вызова подклассами.

Подробное описание методов

regexFilter

public static <M,I> RowFilter<M,I> regexFilter(String regex, int... indices)
Возвращает RowFilter, использующий регулярное выражение для определения включаемых записей. Включаются только записи, содержащие хотя бы одно совпадающее значение. Например, следующий код создает RowFilter, включающий записи, содержащие хотя бы одно значение, начинающееся с «a»:
  RowFilter.regexFilter("^a");

Возвращаемый фильтр использует Matcher.find() для проверки включения. Для проверки точных совпадений используйте символы '^' и '$' для сопоставления соответственно с началом и концом строки. Например, "^foo$" включает только строки, в которых содержится в точности "foo", но не, например, "food". Полное описание поддерживаемых конструкций регулярных выражений см. в Pattern.

Параметры типа:
M - тип модели, к которой применяется RowFilter
I - тип идентификатора, передаваемого в RowFilter
Параметры:
regex - регулярное выражение для фильтрации
indices - индексы проверяемых значений. Если не указаны, проверяются все значения
Возвращает:
RowFilter, реализующий указанные критерии
Исключения:
NullPointerException - если regex равен null
IllegalArgumentException - если любое из indices меньше 0
PatternSyntaxException - если regex не является допустимым регулярным выражением.
См. также:
  • Pattern

dateFilter

public static <M,I> RowFilter<M,I> dateFilter(RowFilter.ComparisonType type, Date date, int... indices)
Возвращает RowFilter, включающий записи, имеющие хотя бы одно значение Date, соответствующее указанным критериям. Например, следующий RowFilter включает только записи, содержащие хотя бы одно значение даты, относящееся к более позднему времени, чем текущая дата:
  RowFilter.dateFilter(ComparisonType.AFTER, new Date());
Параметры типа:
M - тип модели, к которой применяется RowFilter
I - тип идентификатора, передаваемого в RowFilter
Параметры:
type - тип выполняемого сравнения
date - дата для сравнения
indices - индексы проверяемых значений. Если не указаны, проверяются все значения
Возвращает:
RowFilter, реализующий указанные критерии
Исключения:
NullPointerException - если date равен null
IllegalArgumentException - если любой из indices меньше 0 или type равен null
См. также:
  • Calendar
  • Date

numberFilter

public static <M,I> RowFilter<M,I> numberFilter(RowFilter.ComparisonType type, Number number, int... indices)
Возвращает RowFilter, включающий записи, имеющие хотя бы одно значение Number, соответствующее указанным критериям. Например, следующий фильтр включает только записи, содержащие хотя бы одно числовое значение, равное 10:
  RowFilter.numberFilter(ComparisonType.EQUAL, 10);
Параметры типа:
M - тип модели, к которой применяется RowFilter
I - тип идентификатора, передаваемого в RowFilter
Параметры:
type - тип выполняемого сравнения
number - значение Number для сравнения
indices - индексы проверяемых значений. Если не указаны, проверяются все значения
Возвращает:
RowFilter, реализующий указанные критерии
Исключения:
IllegalArgumentException - если любой из indices меньше 0, type равен null или number равен null

orFilter

public static <M,I> RowFilter<M,I> orFilter(Iterable<? extends RowFilter<? super M, ? super I>> filters)
Возвращает RowFilter, включающий записи, если запись включена хотя бы одним из переданных фильтров.

Следующий пример создает RowFilter, включающий все записи, содержащие строку "foo" или строку "bar":

  List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2);
  filters.add(RowFilter.regexFilter("foo"));
  filters.add(RowFilter.regexFilter("bar"));
  RowFilter<Object,Object> fooBarFilter = RowFilter.orFilter(filters);
Параметры типа:
M - тип модели, к которой применяется RowFilter
I - тип идентификатора, передаваемого в RowFilter
Параметры:
filters - проверяемые RowFilters
Возвращает:
RowFilter, реализующий указанные критерии
Исключения:
IllegalArgumentException - если любой из фильтров равен null
NullPointerException - если filters равен null
См. также:
  • Arrays.asList(T...)

andFilter

public static <M,I> RowFilter<M,I> andFilter(Iterable<? extends RowFilter<? super M, ? super I>> filters)
Возвращает RowFilter, включающий записи, если все переданные фильтры включают эту запись.

Следующий пример создает RowFilter, включающий все записи, содержащие строку "foo" и строку "bar":

  List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2);
  filters.add(RowFilter.regexFilter("foo"));
  filters.add(RowFilter.regexFilter("bar"));
  RowFilter<Object,Object> fooBarFilter = RowFilter.andFilter(filters);
Параметры типа:
M - тип модели, к которой применяется RowFilter
I - тип идентификатора, передаваемого в RowFilter
Параметры:
filters - проверяемые RowFilters
Возвращает:
RowFilter, реализующий указанные критерии
Исключения:
IllegalArgumentException - если любой из фильтров равен null
NullPointerException - если filters равен null
См. также:
  • Arrays.asList(T...)

notFilter

public static <M,I> RowFilter<M,I> notFilter(RowFilter<M,I> filter)
Возвращает RowFilter, включающий записи, если переданный фильтр не включает эту запись.
Параметры типа:
M - тип модели, к которой применяется RowFilter
I - тип идентификатора, передаваемого в RowFilter
Параметры:
filter - фильтр RowFilter, который требуется инвертировать
Возвращает:
RowFilter, реализующий указанные критерии
Исключения:
IllegalArgumentException - если filter равен null

include

public abstract boolean include(RowFilter.Entry<? extends M, ? extends I> entry)
Возвращает true, если указанную запись следует отображать; возвращает false, если запись следует скрыть.

Аргумент entry действителен только во время выполнения вызова. Использование entry после возврата из вызова приводит к неопределенному поведению.

Параметры:
entry - объект, не являющийся null, который оборачивает базовый объект модели
Возвращает:
true, если запись следует отображать

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API