public class DocumentFilter extends Object
DocumentFilter, as the name implies, is a filter for the
 Document mutation methods. When a Document
 containing a DocumentFilter is modified (either through
 insert or remove), it forwards the appropriate
 method invocation to the DocumentFilter. The
 default implementation allows the modification to
 occur. Subclasses can filter the modifications by conditionally invoking
 methods on the superclass, or invoking the necessary methods on
 the passed in FilterBypass. Subclasses should NOT call back
 into the Document for the modification
 instead call into the superclass or the FilterBypass.
 
 When remove or insertString is invoked
 on the DocumentFilter, the DocumentFilter
 may callback into the
 FilterBypass multiple times, or for different regions, but
 it should not callback into the FilterBypass after returning
 from the remove or insertString method.
 
 By default, text related document mutation methods such as
 insertString, replace and remove
 in AbstractDocument use DocumentFilter when
 available, and Element related mutation methods such as
 create, insert and removeElement in
 DefaultStyledDocument do not use DocumentFilter.
 If a method doesn't follow these defaults, this must be explicitly stated
 in the method documentation.
Document, 
AbstractDocument, 
DefaultStyledDocument| Modifier and Type | Class | Description | 
|---|---|---|
| static class  | DocumentFilter.FilterBypass | Used as a way to circumvent calling back into the Document to
 change it. | 
| Constructor | Description | 
|---|---|
| DocumentFilter() | 
| Modifier and Type | Method | Description | 
|---|---|---|
| void | insertString(DocumentFilter.FilterBypass fb,
            int offset,
            String string,
            AttributeSet attr) | Invoked prior to insertion of text into the
 specified Document. | 
| void | remove(DocumentFilter.FilterBypass fb,
      int offset,
      int length) | Invoked prior to removal of the specified region in the
 specified Document. | 
| void | replace(DocumentFilter.FilterBypass fb,
       int offset,
       int length,
       String text,
       AttributeSet attrs) | Invoked prior to replacing a region of text in the
 specified Document. | 
public void remove(DocumentFilter.FilterBypass fb, int offset, int length) throws BadLocationException
FilterBypass as
 necessary.fb - FilterBypass that can be used to mutate Documentoffset - the offset from the beginning >= 0length - the number of characters to remove >= 0BadLocationException - some portion of the removal range
   was not a valid part of the document.  The location in the exception
   is the first bad position encountered.public void insertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException
fb - FilterBypass that can be used to mutate Documentoffset - the offset into the document to insert the content >= 0.
    All positions that track change at or after the given location
    will move.string - the string to insertattr - the attributes to associate with the inserted
   content.  This may be null if there are no attributes.BadLocationException - the given insert position is not a
   valid position within the documentpublic void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException
fb - FilterBypass that can be used to mutate Documentoffset - Location in Documentlength - Length of text to deletetext - Text to insert, null indicates no text to insertattrs - AttributeSet indicating attributes of inserted text,
              null is legal.BadLocationException - the given insert position is not a
   valid position within the document Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.