java.lang.Object
javax.swing.text.DocumentFilter
public class DocumentFilter extends Object
DocumentFilter
は、名前が示すようにDocument
変更メソッドのフィルタです。 DocumentFilter
を格納するDocument
が、insert
またはremove
を介して変更されると、適当なメソッド呼出しがDocumentFilter
に転送されます。 デフォルトの実装では、変更が可能です。 サブクラスは、場合に応じてメソッドをスーパー・クラス上に呼び出すか、渡されたFilterBypass
に必要なメソッドを呼び出すことで、変更にフィルタを設定できます。 サブクラスは、変更をDocumentにコールバックするのではなく、スーパー・クラスやFilterBypass
への呼出しを行う必要があります。
remove
またはinsertString
がDocumentFilter
上で呼び出されると、DocumentFilter
はFilterBypass
を複数回または異なる領域に対してコールバックできますが、remove
またはinsertString
メソッドから返されたあとに、FilterBypass
へコールバックしてはいけません。
デフォルトでは、AbstractDocument
のinsertString
、replace
、remove
などのテキスト関連のドキュメント変更メソッドは、使用可能な場合にDocumentFilter
を使用し、DefaultStyledDocument
のcreate
、insert
、removeElement
などのElement
関連の変更メソッドはDocumentFilter
を使用しません。 メソッドがこれらのデフォルトに従わない場合、メソッド・ドキュメンテーションに明示的に記載する必要があります。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
ネストされたクラスのサマリー
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明void
insertString
(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr) 指定したDocumentにテキストを挿入する前に呼び出されます。void
remove
(DocumentFilter.FilterBypass fb, int offset, int length) 指定したDocumentの指定した範囲を削除する前に呼び出されます。void
replace
(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) 指定したDocumentでテキストの範囲を置き換える前に呼び出されます。
-
コンストラクタの詳細
-
DocumentFilter
public DocumentFilter()DocumentFilter
を構築します。
-
-
メソッドの詳細
-
remove
public void remove(DocumentFilter.FilterBypass fb, int offset, int length) throws BadLocationException 指定したDocumentの指定した範囲を削除する前に呼び出されます。 条件付きで削除を許可されるサブクラスは、このメソッドをオーバーライドしてスーパー・クラスの実装を必要に応じて呼び出すだけか、FilterBypass
を必要に応じて直接呼び出します。- パラメータ:
fb
- Documentの変更に使用するFilterBypassoffset
- 先頭からのオフセット>= 0length
- 削除対象の文字数>= 0- 例外:
BadLocationException
- 削除範囲の一部がドキュメントの有効な部分でなかった場合。 例外内の位置は、最初に検出された不正な位置。
-
insertString
public void insertString(DocumentFilter.FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException 指定したDocumentにテキストを挿入する前に呼び出されます。 条件付きで挿入を許可するサブクラスは、このメソッドをオーバーライドしてスーパー・クラスの実装を必要に応じて呼び出すだけか、FilterBypassを必要に応じて直接呼び出します。- パラメータ:
fb
- Documentの変更に使用するFilterBypassoffset
- コンテンツを挿入するドキュメント内のオフセット。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の変更に使用するFilterBypassoffset
- Documentでの位置length
- 削除するテキストの長さtext
- 挿入するテキスト。nullの場合、テキストは挿入されないattrs
- 挿入されたテキストの属性を示すAttributeSet。nullも可。- 例外:
BadLocationException
- 指定された挿入位置がドキュメント内の有効な位置でない場合
-