Module  java.desktop
软件包  javax.swing.text

Class DocumentFilter



  • public class DocumentFilter
    extends Object
    DocumentFilter ,顾名思义,是Document突变方法的过滤器。 Document包含DocumentFilter (通过insertremove )时,它会将适当的方法调用转发到DocumentFilter 默认实现允许修改发生。 子类可以通过有条件地调用超类的方法来过滤这些修改,也可以调用FilterBypass传递的必要方法。 子类不应该调用文档进行修改,而不是调用超类或FilterBypass

    remove或者insertString上调用DocumentFilter ,该DocumentFilter可能回调到FilterBypass多次,或针对不同的区域,但它不应该回调到FilterBypass从返回后remove或者insertString方法。

    默认情况下,文本文档相关基因突变的方法,如insertStringreplaceremoveAbstractDocument使用DocumentFilter时可用,并且Element相关基因突变的方法,如createinsertremoveElementDefaultStyledDocument不使用DocumentFilter 如果方法不遵循这些默认值,则必须在方法文档中明确说明。

    从以下版本开始:
    1.4
    另请参见:
    DocumentAbstractDocumentDefaultStyledDocument
    • 构造方法详细信息

      • DocumentFilter

        public DocumentFilter​()
    • 方法详细信息

      • 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