- java.lang.Object
-
- javax.swing.text.DocumentFilter
-
public class DocumentFilter extends Object
DocumentFilter,顾名思义,是Document变异方法的过滤器。 当Document包含DocumentFilter(通过insert或remove)时,它会将适当的方法调用转发到DocumentFilter。 默认实现允许进行修改。 子类可以通过有条件地调用超类上的方法来过滤修改,或者在传入的FilterBypass调用必要的方法。 子类不应该回调用于修改的文档而是调用超类或FilterBypass。当
remove或insertString在被调用DocumentFilter,该DocumentFilter可能回调到FilterBypass多次,或针对不同的区域,但它不应该回调到FilterBypass从返回后remove或insertString方法。默认情况下,文本文档相关基因突变的方法,如
insertString,replace和remove在AbstractDocument使用DocumentFilter的时候用,并Element相关基因突变的方法,如create,insert和removeElement在DefaultStyledDocument不要使用DocumentFilter。 如果方法不遵循这些默认值,则必须在方法文档中明确说明。- 从以下版本开始:
- 1.4
- 另请参见:
-
Document,AbstractDocument,DefaultStyledDocument
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static classDocumentFilter.FilterBypass用作规避回调到Document以更改它的方法。
-
构造方法摘要
构造方法 构造器 描述 DocumentFilter()
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 voidinsertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr)在将文本插入指定的Document之前调用。voidremove(DocumentFilter.FilterBypass fb, int offset, int length)在删除指定Document中的指定区域之前调用。voidreplace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs)在替换指定Document中的文本区域之前调用。
-
-
-
方法详细信息
-
remove
public void remove(DocumentFilter.FilterBypass fb, int offset, int length) throws BadLocationException
在删除指定Document中的指定区域之前调用。 想要有条件地允许删除的子类应该覆盖它,并且只在必要时调用FilterBypass实现,或者根据需要直接调用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- 文档中的位置 -
length- 要删除的文本长度 -
text- 要插入的文本,null表示不插入任何文本 -
attrs- 指示插入文本属性的AttributeSet,null是合法的。 - 异常
-
BadLocationException- the given insert position is not a valid position within the document
-
-