Класс DocumentFilter
- java.lang.Object
-
- javax.swing.text.DocumentFilter
public class DocumentFilter extends Object
DocumentFilter, как следует из названия, является фильтром для методов мутации Document. Когда изменяется Document, содержащий DocumentFilter, он перенаправляет соответствующий вызов метода в DocumentFilter. По умолчанию изменение разрешено. Подклассы могут фильтровать изменения, условно вызывая методы суперкласса или вызывая необходимые методы переданного FilterBypass. Подклассы НЕ должны обращаться к документу для изменения, вместо этого следует обратиться к суперклассу или к FilterBypass.
При вызове remove или insertString на DocumentFilter, DocumentFilter может обращаться к FilterBypass несколько раз или для различных областей, но он не должен обращаться к FilterBypass после возвращения из метода remove или insertString.
По умолчанию, методы мутации документа, связанные с текстом, такие как insertString, replace и remove в AbstractDocument, используют DocumentFilter, если доступно, а методы мутации, связанные с Element, такие как create, insert и removeElement в DefaultStyledDocument, не используют DocumentFilter. Если метод не следует этим правилам, это должно быть явно указано в документации метода.
- Since:
- 1.4
- См. также:
-
Document,AbstractDocument,DefaultStyledDocument
Вложенные классы
| Модификатор и тип | Класс и описание |
|---|---|
static class |
DocumentFilter.FilterBypass Используется для того, чтобы обойти обращение к документу для его изменения. |
Краткое описание конструкторов
| Конструктор и описание |
|---|
DocumentFilter() |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
void |
insertString(DocumentFilter.FilterBypass fb,
int offset,
String string,
AttributeSet attr) Вызывается перед вставкой текста в указанный документ. |
void |
remove(DocumentFilter.FilterBypass fb,
int offset,
int length) Вызывается перед удалением указанного региона в указанном документе. |
void |
replace(DocumentFilter.FilterBypass fb,
int offset,
int length,
String text,
AttributeSet attrs) Вызывается перед заменой области текста в указанном документе. |
Методы, унаследованные от класса 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.