Spec-Zone.ru › OpenJDK 25

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. Будут отображаться только Person старше 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

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

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 — RowFilter для проверки
Возвращает:
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 — RowFilter для проверки
Возвращает:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/RowFilter.html

Spec-Zone.ru

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