- 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
DocumentFilter.FilterBypass
用作一种方式来规避回调文档以更改它。
-
构造方法摘要
构造方法 Constructor 描述 DocumentFilter()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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)
在替换指定文档中的文本区域之前调用。
-
-
-
方法详细信息
-
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
在将文本插入指定的文档之前调用。 要有条件地允许插入的子类应该覆盖这个,只有在必要时才调用supers实现,或直接调用到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
在替换指定文档中的文本区域之前调用。 要有条件地允许替换的子类应该覆盖这个,并且只有在必要时才调用supers实现,或直接调用到FilterBypass。- 参数
-
fb
- 可以用于变更Document的FilterBypass -
offset
- 文件中的位置 -
length
- 要删除的文本长度 -
text
- 要插入的文本,null表示不插入任何文本 -
attrs
- 指示插入文本的属性的AttributeSet,null是合法的。 - 异常
-
BadLocationException
- the given insert position is not a valid position within the document
-
-