モジュール java.desktop
パッケージ javax.swing.text

クラスDocumentFilter



  • public class DocumentFilter
    extends Object
    DocumentFilterは、名前が示すようにDocument変更メソッドのフィルタです。 DocumentFilterを格納するDocumentが、insertまたはremoveを介して変更されると、適当なメソッド呼出しがDocumentFilterに転送されます。 デフォルトの実装では、変更が可能です。 サブクラスは、場合に応じてメソッドをスーパー・クラス上に呼び出すか、渡されたFilterBypassに必要なメソッドを呼び出すことで、変更にフィルタを設定できます。 サブクラスは、変更をDocumentにコールバックするのではなく、スーパー・クラスやFilterBypassへの呼出しを行う必要があります。

    removeまたはinsertStringDocumentFilter上で呼び出されると、DocumentFilterFilterBypassを複数回または異なる領域に対してコールバックできますが、removeまたはinsertStringメソッドから返されたあとに、FilterBypassへコールバックしてはいけません。

    デフォルトでは、AbstractDocumentinsertStringreplaceremoveなどのテキスト関連のドキュメント変更メソッドは、使用可能な場合にDocumentFilterを使用し、DefaultStyledDocumentcreateinsertremoveElementなどのElement関連の変更メソッドはDocumentFilterを使用しません。 メソッドがこれらのデフォルトに従わない場合、メソッド・ドキュメンテーションに明示的に記載する必要があります。

    導入されたバージョン:
    1.4
    関連項目:
    Document, AbstractDocument, DefaultStyledDocument
    • コンストラクタの詳細

      • 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での位置
        length - 削除するテキストの長さ
        text - 挿入するテキスト。nullの場合、テキストは挿入されない
        attrs - 挿入されたテキストの属性を示すAttributeSet。nullも可。
        例外:
        BadLocationException - 指定された挿入位置がドキュメント内の有効な位置でない場合