Класс DocumentFilter
- java.lang.Object
-
- javax.swing.text.DocumentFilter
public class DocumentFilter extends Object
DocumentFilter, как следует из названия, является фильтром для методов мутации Document. Когда изменяется Document, содержащий DocumentFilter, он пересылает соответствующий вызов метода в DocumentFilter. По умолчанию выполнение модификации разрешено. Подклассы могут фильтровать модификации, условно вызывая методы в суперклассе или вызывая необходимые методы в переданном FilterBypass. Подклассы НЕ должны вызывать обратный вызов в Document для модификации, вместо этого вызов должен выполняться в суперклассе или в FilterBypass.
При вызове remove или insertString на DocumentFilter, DocumentFilter может вызывать обратный вызов в FilterBypass несколько раз или для разных областей, но он не должен вызывать обратный вызов в FilterBypass после возвращения из метода remove или insertString.
По умолчанию методы мутации документов, связанные с текстом, такие как insertString, replace и remove в AbstractDocument, используют DocumentFilter, если доступно, а методы мутации, связанные с Element, такие как create, insert и removeElement в DefaultStyledDocument, не используют DocumentFilter. Если метод не следует этим умолчаниям, это должно быть явно указано в документации к методу.
- Since:
- 1.4
- See Also:
-
Document,AbstractDocument,DefaultStyledDocument
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | DocumentFilter.FilterBypass | Используется для того, чтобы избежать обратного вызова в Document для изменения. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
DocumentFilter
public DocumentFilter()
Методы
remove
public void remove(DocumentFilter.FilterBypass fb,
int offset,
int length)
throws BadLocationException Вызывается перед удалением указанного диапазона в указанном документе. Подклассы, которые хотят условно разрешить удаление, должны переопределить этот метод и только по необходимости вызывать реализацию суперкласса или напрямую обращаться к FilterBypass по необходимости.
- Параметры:
-
fb- FilterBypass, который может использоваться для изменения документа -
offset- смещение от начала >= 0 -
length- количество символов для удаления >= 0 - Исключения:
-
BadLocationException- часть диапазона удаления не являлась допустимой частью документа. Местоположение в исключении — первая некорректная позиция.
insertString
public void insertString(DocumentFilter.FilterBypass fb,
int offset,
String string,
AttributeSet attr)
throws BadLocationException Вызывается перед вставкой текста в указанный документ. Подклассы, которые хотят условно разрешить вставку, должны переопределить этот метод и только по необходимости вызывать реализацию суперкласса или напрямую обращаться к FilterBypass.
- Параметры:
-
fb- FilterBypass, который может использоваться для изменения документа -
offset- смещение в документе для вставки содержимого >= 0. Все позиции, отслеживающие изменения в или после заданного местоположения, будут смещены. -
string- строка для вставки -
attr- атрибуты, связанные с вставляемым содержимым. Может быть null, если атрибуты отсутствуют. - Исключения:
-
BadLocationException- заданная позиция вставки не является допустимой позицией в документе
replace
public void replace(DocumentFilter.FilterBypass fb,
int offset,
int length,
String text,
AttributeSet attrs)
throws BadLocationException Вызывается перед заменой области текста в указанном документе. Подклассы, которые хотят условно разрешить замену, должны переопределить этот метод и только по необходимости вызывать реализацию суперкласса или напрямую обращаться к FilterBypass.
- Параметры:
-
fb- FilterBypass, который может использоваться для изменения документа -
offset- Позиция в документе -
length- Длина текста для удаления -
text- Текст для вставки, null указывает на отсутствие текста для вставки -
attrs- AttributeSet, указывающий атрибуты вставляемого текста, null допустим. - Исключения:
-
BadLocationException- заданная позиция вставки не является допустимой позицией в документе
© 1993, 2020, 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/11/docs/api/java.desktop/javax/swing/text/DocumentFilter.html