javax.swing.text

接口
异常
java.lang.Object
  继承者 javax.swing.text.DocumentFilter

public class DocumentFilter
     
extends Object

DocumentFilter,顾名思义,它是 Document 改变方法的一个过滤器。修改包含 DocumentFilterDocument 时(通过 insertremove),它将适当的方法调用转发给 DocumentFilter。该默认实现允许进行修改。通过有条件地调用超类方法,或在传入的 FilterBypass 上调用必要的方法,子类可以过滤修改。子类不应回调 Document 进行修改,而应调用超类或 FilterBypass

DocumentFilter 上调用 removeinsertString 时,DocumentFilter 可能多次回调 FilterBypass,或针对不同的区域,但它不应在从 removeinsertString 方法返回后回调 FilterBypass

从以下版本开始:
1.4
另请参见:
Document

嵌套类摘要
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
移除指定 Document 中的指定区域之前调用。希望有条件地允许移除的子类应重写此方法,并只在必要的时候调用超类实现,或者根据需要直接调用 FilterBypass

参数:
fb - 可用于改动 Document 的 FilterBypass
offset - 起始位置处的偏移量,该值 >= 0
length - 要移除的字符数,该值 >= 0
抛出:
BadLocationException - 移除范围的有些部分不是文档的有效部分。异常中的位置为遇到的第一个损坏位置。

insertString

public void insertString(DocumentFilter.FilterBypass fb,
                         int offset,
                         String string,
                         AttributeSet attr)
                  throws BadLocationException
将文本插入指定的 Document 之前调用。希望有条件地允许插入的子类应重写此方法,并只在必要的时候调用超类实现,或者直接调用 FilterBypass。

参数:
fb - 可用于改动 Document 的 FilterBypass
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 - 可用于改动 Document 的 FilterBypass
offset - Document 中的 Location
length - 要删除的文本的长度
text - 要插入的文本,null 指示没有要插入的文本
attrs - 指示插入的文本的属性的 AttributeSet,null 也为合法。
抛出:
BadLocationException - 给定的插入位置不是文档中的有效位置