Класс 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
- See Also:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
DocumentFilter.FilterBypass |
Используется для того, чтобы избежать обращений к документу для изменения. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DocumentFilter() |
Создаёт DocumentFilter. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
insertString |
Вызывается перед вставкой текста в указанный документ. |
void |
remove |
Вызывается перед удалением указанной области в указанном документе. |
void |
replace |
Вызывается перед заменой области текста в указанном документе. |
Подробное описание конструкторов
DocumentFilter
public DocumentFilter()
DocumentFilter.Подробное описание методов
remove
public void remove(DocumentFilter.FilterBypass fb, int offset, int length) throws BadLocationException
FilterBypass при необходимости.- Parameters:
-
fb- FilterBypass, который может использоваться для изменения документа -
offset- смещение от начала >= 0 -
length- количество символов для удаления >= 0 - Throws:
-
BadLocationException- часть диапазона удаления не является допустимой частью документа. Местоположение в исключении - это первая встреченная некорректная позиция.
insertString
public void insertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException
- Parameters:
-
fb- FilterBypass, который может использоваться для изменения документа -
offset- смещение в документе для вставки содержимого >= 0. Все позиции, отслеживающие изменения в или после данной позиции, будут перемещены. -
string- строка для вставки -
attr- атрибуты, которые следует связать с вставленным содержимым. Может быть null, если атрибуты отсутствуют. - Throws:
-
BadLocationException- заданная позиция вставки не является допустимой позицией в документе
replace
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException
- Parameters:
-
fb- FilterBypass, который может использоваться для изменения документа -
offset- Позиция в документе -
length- Длина текста для удаления -
text- Текст для вставки, null означает, что текст не вставляется -
attrs- AttributeSet, указывающий атрибуты вставленного текста, null допустим. - Throws:
-
BadLocationException- заданная позиция вставки не является допустимой позицией в документе
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/text/DocumentFilter.html