Spec-Zone.ru › OpenJDK 27

Класс DocumentFilter

java.lang.Object
javax.swing.text.DocumentFilter
public class DocumentFilter extends Object
DocumentFilter, как следует из названия, является фильтром для методов изменения Document. При изменении Document, содержащего DocumentFilter (через insert или remove), он перенаправляет соответствующий вызов метода в DocumentFilter. Реализация по умолчанию допускает выполнение изменения. Подклассы могут фильтровать изменения, условно вызывая методы суперкласса или необходимые методы переданного FilterBypass. Подклассы НЕ ДОЛЖНЫ обращаться к Document для выполнения изменения; вместо этого следует обращаться к суперклассу или FilterBypass.

При вызове remove или insertString для DocumentFilter, DocumentFilter может вызывать обратный вызов в FilterBypass несколько раз или для разных областей, но не должен вызывать обратный вызов в FilterBypass после возврата из метода remove или insertString.

По умолчанию методы изменения документа, связанные с текстом, такие как insertString, replace и remove в AbstractDocument, используют DocumentFilter, если он доступен, а методы изменения, связанные с Element, такие как create, insert и removeElement в DefaultStyledDocument, не используют DocumentFilter. Если метод не соответствует этим правилам по умолчанию, это должно быть явно указано в его документации.

Начиная с:
1.4
См. также:
  • Document
  • AbstractDocument
  • DefaultStyledDocument

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

Модификатор и тип Класс Описание
static class  DocumentFilter.FilterBypass
Используется для того, чтобы обойтись без обратного вызова в Document для его изменения.

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

Конструктор Описание
DocumentFilter()
Создает DocumentFilter.

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

Модификатор и тип Метод Описание
void insertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr)
Вызывается перед вставкой текста в указанный Document.
void remove(DocumentFilter.FilterBypass fb, int offset, int length)
Вызывается перед удалением указанной области в указанном Document.
void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs)
Вызывается перед заменой области текста в указанном Document.

Методы, объявленные в классе 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()
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать до пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного интервала реального времени.

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

DocumentFilter

public DocumentFilter()
Создает DocumentFilter.

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

remove

public void remove(DocumentFilter.FilterBypass fb, int offset, int length) throws BadLocationException
Вызывается перед удалением указанной области в указанном Document. Подклассы, которые хотят условно разрешать удаление, должны переопределить этот метод и вызывать реализацию суперкласса только при необходимости либо при необходимости напрямую обращаться к FilterBypass.
Параметры:
fb — FilterBypass, который можно использовать для изменения Document
offset — смещение от начала, >= 0
length — количество символов для удаления, >= 0
Выбрасывает:
BadLocationException — часть диапазона удаления не является допустимой частью документа. Позиция в исключении указывает на первое обнаруженное недопустимое положение.

insertString

public void insertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException
Вызывается перед вставкой текста в указанный Document. Подклассы, которые хотят условно разрешать вставку, должны переопределить этот метод и вызывать реализацию суперкласса только при необходимости либо напрямую обращаться к FilterBypass.
Параметры:
fb — FilterBypass, который можно использовать для изменения Document
offset — смещение в документе для вставки содержимого, >= 0. Все позиции, отслеживающие изменения в указанном месте или после него, будут перемещены.
string — строка для вставки
attr — атрибуты, связываемые с вставленным содержимым. Может иметь значение null, если атрибуты отсутствуют.
Выбрасывает:
BadLocationException — указанная позиция вставки не является допустимой позицией в документе

replace

public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException
Вызывается перед заменой области текста в указанном Document. Подклассы, которые хотят условно разрешать замену, должны переопределить этот метод и вызывать реализацию суперкласса только при необходимости либо напрямую обращаться к FilterBypass.
Параметры:
fb — FilterBypass, который можно использовать для изменения Document
offset — расположение в Document
length — длина удаляемого текста
text — текст для вставки; null означает, что текст вставлять не нужно
attrs — AttributeSet, указывающий атрибуты вставляемого текста; допускается значение null.
Выбрасывает:
BadLocationException — указанная позиция вставки не является допустимой позицией в документе

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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