- 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 classDocumentFilter.FilterBypass用作一种方式来规避回调文档以更改它。
-
构造方法摘要
构造方法 Constructor 描述 DocumentFilter()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidinsertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr)在将文本插入指定的文档之前调用。voidremove(DocumentFilter.FilterBypass fb, int offset, int length)在删除指定文档中的指定区域之前调用。voidreplace(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
-
-