JavaTM Platform
Standard Ed. 6

javax.swing.text
クラス AbstractDocument

java.lang.Object
  上位を拡張 javax.swing.text.AbstractDocument
すべての実装されたインタフェース:
Serializable, Document
直系の既知のサブクラス:
DefaultStyledDocument, PlainDocument

public abstract class AbstractDocument
extends Object
implements Document, Serializable

ドキュメントインタフェースの実装であり、各種のドキュメントを実装するときのベースになります。このレベルではポリシーがごくわずかなので、それに応じて使用が難しくなります。

このクラスは、ドキュメントのロック機構を実装します。この機構によって、複数の読み込みまたは 1 つの書き込みを扱えるようになり、複数の書き込みがあっても、ドキュメントのオブザーバ全員に以前の変更が通知されるまで、ドキュメントに別の変更を加えることができません。読み込みロックの取得および解放には、render メソッドを使います。書き込みロックは、ドキュメントを変更するメソッドによって取得され、そのメソッド呼び出しの間は保持されます。通知は、ドキュメントを変更するスレッド上で行われます。このスレッドは、通知の間はドキュメントへの完全な読み込みアクセス権を持っています。一方で、その他の書き込み側は、通知が完了するまではアクセスを許されません。通知は Beans イベント通知であり、すべてのリスナーが通知を受け取るまではほかの変更を許可しません。

このクラスからサブクラス化された任意のモデルで、BasicTextUI から派生した Look & Feel の実装を持つテキストコンポーネントと関連して使用されるものは、安全に非同期に更新されます。 これは、ドキュメントのタイプが AbstractDocument の場合には、View 階層へのすべてのアクセスが BasicTextUI によって直列化されるからです。ロック機構では、独立したスレッドの View 階層へのアクセスは必ず DocumentListener メソッドを介して行われ、また、ある 1 つの時点にはアクティブなスレッドは 1 つしか存在しないと見なします。

同期のサポートが必要な場合は、さらに次の前提条件があります。任意の DocumentListener および UndoListener の実装に対するコードパスがスレッドに対して安全であること、また、デッドロックを避ける場合には、コンポーネントのロックにアクセスしないこと、という条件です。JComponent の repaint メソッドおよび revalidate メソッドは安全です。

AbstractDocument はドキュメントの最後に暗黙のブレークをモデル化します。さまざまなことが可能ですが、その 1 つとして最後の文字のあとにキャレットを配置できます。その結果、Content より短い getLength を返します。独自の Content を生成する場合は、文字を追加して初期化するようにしてください。この例については StringContent と GapContent を参照してください。別の前提条件は、暗黙の最終文字をモデル化する Elements は endOffset == (getLength() + 1) となることです。たとえば、DefaultStyledDocument の場合は getParagraphElement(getLength()).getEndOffset() == getLength() + 1 です。

警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。JDK Version 1.4 以降、すべての JavaBeans の長期間の運用サポートは、java.beans パッケージに追加されています。詳細は、XMLEncoder を参照してください。


入れ子のクラスの概要
 class AbstractDocument.AbstractElement
          要素の抽象部分を実装します。
static interface AbstractDocument.AttributeContext
          このインタフェースは、プラグイン可能な属性圧縮手法を MutableAttributeSet の実装で使用可能にするために使用できます。
 class AbstractDocument.BranchElement
          ほかの要素を含む複合要素を実装します。
static interface AbstractDocument.Content
          編集可能な文字のシーケンスを示すインタフェースです。
 class AbstractDocument.DefaultDocumentEvent
          ドキュメントが変更された場合に、ドキュメントの変更を格納します。
static class AbstractDocument.ElementEdit
          ドキュメントのイベントに追加できる ElementChange の実装です。
 class AbstractDocument.LeafElement
          ある種のコンテンツを直接表す要素を実装します。
 
フィールドの概要
protected static String BAD_LOCATION
          不正な位置を示すエラーメッセージです。
static String BidiElementName
          単方向の実行を示す要素の名前です。
static String ContentElementName
          内容を示す要素の名前です。
static String ElementNameAttribute
          要素の名前の指定に使う属性の名前です。
protected  EventListenerList listenerList
          ドキュメントのイベントリスナーです。
static String ParagraphElementName
          段落を示す要素の名前です。
static String SectionElementName
          行、段落などのセクションを示す要素の名前です。
 
インタフェース javax.swing.text.Document から継承されたフィールド
StreamDescriptionProperty, TitleProperty
 
コンストラクタの概要
protected AbstractDocument(AbstractDocument.Content data)
          なんらかの内容記憶機構をラップした、新しい AbstractDocument を構築します。
protected AbstractDocument(AbstractDocument.Content data, AbstractDocument.AttributeContext context)
          なんらかの内容記憶機構をラップした、新しい AbstractDocument を構築します。
 
メソッドの概要
 void addDocumentListener(DocumentListener listener)
          ドキュメントリスナーを追加し、変更があったときに通知されるようにします。
 void addUndoableEditListener(UndoableEditListener listener)
          任意の変更を通知するアンドゥリスナーを追加します。
protected  Element createBranchElement(Element parent, AttributeSet a)
          ドキュメントの枝の要素を作成します。
protected  Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
          ドキュメントの葉の要素を作成します。
 Position createPosition(int offs)
          ドキュメントが変更されたときに、変更を追跡する位置を返します。
 void dump(PrintStream out)
          診断用のダンプを出力します。
protected  void fireChangedUpdate(DocumentEvent e)
          通知の配信対象を、指定されたイベント型で登録したすべてのリスナーに通知します。
protected  void fireInsertUpdate(DocumentEvent e)
          通知の配信対象を、指定されたイベント型で登録したすべてのリスナーに通知します。
protected  void fireRemoveUpdate(DocumentEvent e)
          通知の配信対象を、指定されたイベント型で登録したすべてのリスナーに通知します。
protected  void fireUndoableEditUpdate(UndoableEditEvent e)
          通知の配信対象を、指定されたイベント型で登録したすべてのリスナーに通知します。
 int getAsynchronousLoadPriority()
          非同期ロードの優先順位を取得します。
protected  AbstractDocument.AttributeContext getAttributeContext()
          属性を管理するためのコンテキストを返します。
 Element getBidiRootElement()
          ドキュメントの双方向構造のルート要素を返します。
protected  AbstractDocument.Content getContent()
          ドキュメントの内容を取得します。
protected  Thread getCurrentWriter()
          現在の書き込みスレッドがあれば、それを取得します。
abstract  Element getDefaultRootElement()
          ルート要素を返します。
 DocumentFilter getDocumentFilter()
          挿入または削除のフィルタを行う DocumentFilter を返します。
 DocumentListener[] getDocumentListeners()
          このドキュメントに登録された、すべてのドキュメントリスナーから成る配列を返します。
 Dictionary<Object,Object> getDocumentProperties()
          プロパティーのセットの管理をサポートします。
 Position getEndPosition()
          ドキュメントの末尾を表す位置を返します。
 int getLength()
          データの長さを返します。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          このドキュメントに FooListener として現在登録されているすべてのオブジェクトの配列を返します。
abstract  Element getParagraphElement(int pos)
          指定された位置を保持する段落要素を取得します。
 Object getProperty(Object key)
          プロパティーの値を調べるのに便利なメソッドです。
 Element[] getRootElements()
          定義されているルート要素をすべて取得します。
 Position getStartPosition()
          ドキュメントの先頭を表す位置を返します。
 String getText(int offset, int length)
          ドキュメントからテキストのシーケンスを取得します。
 void getText(int offset, int length, Segment txt)
          ドキュメントの指定部分内にあるテキストを取得します。
 UndoableEditListener[] getUndoableEditListeners()
          このドキュメントに登録された、すべての取り消し可能編集リスナーから成る配列を返します。
 void insertString(int offs, String str, AttributeSet a)
          ドキュメントに内容を挿入します。
protected  void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
          ドキュメント構造をテキスト挿入の結果で更新します。
protected  void postRemoveUpdate(AbstractDocument.DefaultDocumentEvent chng)
          ドキュメント構造をテキスト削除の結果で更新します。
 void putProperty(Object key, Object value)
          プロパティーの値を格納するのに便利なメソッドです。
 void readLock()
          ロックを取得して、ドキュメントからなんらかの状態の読み込みを開始できるようにします。
 void readUnlock()
          読み込みのロックを解除します。
 void remove(int offs, int len)
          ドキュメントから内容を削除します。
 void removeDocumentListener(DocumentListener listener)
          ドキュメントリスナーを削除します。
 void removeUndoableEditListener(UndoableEditListener listener)
          アンドゥリスナーを削除します。
protected  void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
          ドキュメント構造をテキスト削除の結果で更新します。
 void render(Runnable r)
          モデルが非同期的な更新をサポートしている場合、並行性に直面してモデルを安全に描画できるようにします。
 void replace(int offset, int length, String text, AttributeSet attrs)
          offset から offset + length までのテキスト領域を削除し、text に置き換えます。
 void setAsynchronousLoadPriority(int p)
          非同期ロードの優先順位を設定します。
 void setDocumentFilter(DocumentFilter filter)
          DocumentFilter を設定します。
 void setDocumentProperties(Dictionary<Object,Object> x)
          このドキュメントのドキュメントプロパティーの辞書を置き換えます。
protected  void writeLock()
          ロックを取得して、ロックが保護しているドキュメントの変更を開始できるようにします。
protected  void writeUnlock()
          以前 writeLock 経由で取得された書き込みロックを解除します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

listenerList

protected EventListenerList listenerList
ドキュメントのイベントリスナーです。


BAD_LOCATION

protected static final String BAD_LOCATION
不正な位置を示すエラーメッセージです。

関連項目:
定数フィールド値

ParagraphElementName

public static final String ParagraphElementName
段落を示す要素の名前です。

関連項目:
定数フィールド値

ContentElementName

public static final String ContentElementName
内容を示す要素の名前です。

関連項目:
定数フィールド値

SectionElementName

public static final String SectionElementName
行、段落などのセクションを示す要素の名前です。

関連項目:
定数フィールド値

BidiElementName

public static final String BidiElementName
単方向の実行を示す要素の名前です。

関連項目:
定数フィールド値

ElementNameAttribute

public static final String ElementNameAttribute
要素の名前の指定に使う属性の名前です。

関連項目:
定数フィールド値
コンストラクタの詳細

AbstractDocument

protected AbstractDocument(AbstractDocument.Content data)
なんらかの内容記憶機構をラップした、新しい AbstractDocument を構築します。

パラメータ:
data - コンテンツ

AbstractDocument

protected AbstractDocument(AbstractDocument.Content data,
                           AbstractDocument.AttributeContext context)
なんらかの内容記憶機構をラップした、新しい AbstractDocument を構築します。

パラメータ:
data - コンテンツ
context - 属性のコンテキスト
メソッドの詳細

getDocumentProperties

public Dictionary<Object,Object> getDocumentProperties()
プロパティーのセットの管理をサポートします。呼び出し側は、documentProperties の辞書を使用して、ドキュメント全体に関するプロパティーの注釈を付加できます。

戻り値:
null 以外の Dictionary
関連項目:
setDocumentProperties(java.util.Dictionary)

setDocumentProperties

public void setDocumentProperties(Dictionary<Object,Object> x)
このドキュメントのドキュメントプロパティーの辞書を置き換えます。

パラメータ:
x - 新規辞書
関連項目:
getDocumentProperties()

fireInsertUpdate

protected void fireInsertUpdate(DocumentEvent e)
通知の配信対象を、指定されたイベント型で登録したすべてのリスナーに通知します。イベントインスタンスは、fire メソッドに渡されるパラメータを使って簡単に生成されます。

パラメータ:
e - イベント
関連項目:
EventListenerList

fireChangedUpdate

protected void fireChangedUpdate(DocumentEvent e)
通知の配信対象を、指定されたイベント型で登録したすべてのリスナーに通知します。イベントインスタンスは、fire メソッドに渡されるパラメータを使って簡単に生成されます。

パラメータ:
e - イベント
関連項目:
EventListenerList

fireRemoveUpdate

protected void fireRemoveUpdate(DocumentEvent e)
通知の配信対象を、指定されたイベント型で登録したすべてのリスナーに通知します。イベントインスタンスは、fire メソッドに渡されるパラメータを使って簡単に生成されます。

パラメータ:
e - イベント
関連項目:
EventListenerList

fireUndoableEditUpdate

protected void fireUndoableEditUpdate(UndoableEditEvent e)
通知の配信対象を、指定されたイベント型で登録したすべてのリスナーに通知します。イベントインスタンスは、fire メソッドに渡されるパラメータを使って簡単に生成されます。

パラメータ:
e - イベント
関連項目:
EventListenerList

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
このドキュメントに FooListener として現在登録されているすべてのオブジェクトの配列を返します。FooListener は、addFooListener メソッドを使用して登録します。

FooListener.class といったクラスリテラルを使用して、listenerType 引数を指定できます。たとえば次のコードを使用して、ドキュメント d をそのドキュメントリスナーに照会できます。  

DocumentListener[] mls = (DocumentListener[])(d.getListeners(DocumentListener.class));
このようなリスナーがない場合は空の配列を返します。

パラメータ:
listenerType - 要求されるリスナーの型。java.util.EventListener の下位インタフェースを指定
戻り値:
コンポーネントに FooListener として登録されているすべてのオブジェクトの配列。リスナーが登録されていない場合は空の配列を返す
例外:
ClassCastException - listenerTypejava.util.EventListener を実装するクラスまたはインタフェースを指定しない場合
導入されたバージョン:
1.3
関連項目:
getDocumentListeners(), getUndoableEditListeners()

getAsynchronousLoadPriority

public int getAsynchronousLoadPriority()
非同期ロードの優先順位を取得します。0 より小さい値の場合、ドキュメントは非同期にはロードされません。

戻り値:
非同期ロードの優先順位。ドキュメントが非同期で ロードされない場合は -1

setAsynchronousLoadPriority

public void setAsynchronousLoadPriority(int p)
非同期ロードの優先順位を設定します。

パラメータ:
p - 新しい非同期ロードの優先順位。 0 より小さい値の場合、 ドキュメントは非同期でロードされない

setDocumentFilter

public void setDocumentFilter(DocumentFilter filter)
DocumentFilter を設定します。DocumentFilterinsertremove に渡され、条件付きでテキストの挿入や削除が可能になります。null 値は、フィルタが実行されないことを表します。

パラメータ:
filter - テキストの制約に使用される DocumentFilter
導入されたバージョン:
1.4
関連項目:
getDocumentFilter()

getDocumentFilter

public DocumentFilter getDocumentFilter()
挿入または削除のフィルタを行う DocumentFilter を返します。戻り値 null は、フィルタが実行されないことを表します。

戻り値:
DocumentFilter
導入されたバージョン:
1.4
関連項目:
setDocumentFilter(javax.swing.text.DocumentFilter)

render

public void render(Runnable r)
モデルが非同期的な更新をサポートしている場合、並行性に直面してモデルを安全に描画できるようにします。指定された実行可能ファイルは、その実行中に何の変更もなくモデルを安全に読み取る方法で実行されます。実行可能ファイルは、それ自身で変更を加えることはできません。

この実装は、実行している間、読み込みロックを取得するためのものです。複数を同時に実行している場合、アクティブに描画中のオブジェクトがある間は、すべての書き込みがブロックされます。オブジェクトが例外をスローした場合、そのロックは安全に解放されます。決して終了しないオブジェクトに対する保護はなく、事実上、ドキュメントは自身が存在する間ずっとロックされます。

指定されたオブジェクトがどのような変更を試みても、デッドロックが発生します。この状況を検知できるようにするために個々の描画スレッドを追跡することはできません。 また、サブクラスは、描画スレッドの追跡、およびエラーのスローのオーバーヘッドを発生させる可能性があります。

このメソッドはスレッドに対して安全ですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。

定義:
インタフェース Document 内の render
パラメータ:
r - 実行するレンダリング

getLength

public int getLength()
データの長さを返します。ユーザーのデータを示す内容の文字数です。

定義:
インタフェース Document 内の getLength
戻り値:
長さ >= 0
関連項目:
Document.getLength()

addDocumentListener

public void addDocumentListener(DocumentListener listener)
ドキュメントリスナーを追加し、変更があったときに通知されるようにします。

定義:
インタフェース Document 内の addDocumentListener
パラメータ:
listener - 追加する DocumentListener
関連項目:
Document.addDocumentListener(javax.swing.event.DocumentListener)

removeDocumentListener

public void removeDocumentListener(DocumentListener listener)
ドキュメントリスナーを削除します。

定義:
インタフェース Document 内の removeDocumentListener
パラメータ:
listener - 削除する DocumentListener
関連項目:
Document.removeDocumentListener(javax.swing.event.DocumentListener)

getDocumentListeners

public DocumentListener[] getDocumentListeners()
このドキュメントに登録された、すべてのドキュメントリスナーから成る配列を返します。

戻り値:
このドキュメントのすべての DocumentListener。 ドキュメントリスナーが現在登録されていない場合は 空の配列
導入されたバージョン:
1.4
関連項目:
addDocumentListener(javax.swing.event.DocumentListener), removeDocumentListener(javax.swing.event.DocumentListener)

addUndoableEditListener

public void addUndoableEditListener(UndoableEditListener listener)
任意の変更を通知するアンドゥリスナーを追加します。UndoableEdit で実行される「元に戻す/再実行」操作は、適切な DocumetnEvent を発生させて、ビュー (複数の場合もあり) をモデルと同期させます。

定義:
インタフェース Document 内の addUndoableEditListener
パラメータ:
listener - 追加する UndoableEditListener
関連項目:
Document.addUndoableEditListener(javax.swing.event.UndoableEditListener)

removeUndoableEditListener

public void removeUndoableEditListener(UndoableEditListener listener)
アンドゥリスナーを削除します。

定義:
インタフェース Document 内の removeUndoableEditListener
パラメータ:
listener - 削除する UndoableEditListener
関連項目:
Document.removeDocumentListener(javax.swing.event.DocumentListener)

getUndoableEditListeners

public UndoableEditListener[] getUndoableEditListeners()
このドキュメントに登録された、すべての取り消し可能編集リスナーから成る配列を返します。

戻り値:
このドキュメントのすべての UndoableEditListener。 取り消し可能編集リスナーが現在登録されていない場合は 空の配列
導入されたバージョン:
1.4
関連項目:
addUndoableEditListener(javax.swing.event.UndoableEditListener), removeUndoableEditListener(javax.swing.event.UndoableEditListener)

getProperty

public final Object getProperty(Object key)
プロパティーの値を調べるのに便利なメソッドです。これは次と同等です。  
 getDocumentProperties().get(key);
 

定義:
インタフェース Document 内の getProperty
パラメータ:
key - null 以外のプロパティーキー
戻り値:
このプロパティーの値または null
関連項目:
getDocumentProperties()

putProperty

public final void putProperty(Object key,
                              Object value)
プロパティーの値を格納するのに便利なメソッドです。これは次と同等です。  
 getDocumentProperties().put(key, value);
 
valuenull の場合、このメソッドはプロパティーを削除します。

定義:
インタフェース Document 内の putProperty
パラメータ:
key - null 以外のキー
value - プロパティーの値
関連項目:
getDocumentProperties()

remove

public void remove(int offs,
                   int len)
            throws BadLocationException
ドキュメントから内容を削除します。内容の削除によって、実際の変更が起きるまでの書き込みロックが発生します。オブザーバは、このメソッドを呼び出したスレッド上で変更の通知を受けます。

このメソッドはスレッドに対して安全ですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。

定義:
インタフェース Document 内の remove
パラメータ:
offs - 開始オフセット <= 0
len - 削除対象の文字数 >= 0
例外:
BadLocationException - 指定された削除位置が ドキュメント内の有効な位置でない場合
関連項目:
Document.remove(int, int)

replace

public void replace(int offset,
                    int length,
                    String text,
                    AttributeSet attrs)
             throws BadLocationException
offset から offset + length までのテキスト領域を削除し、text に置き換えます。この動作がどのように実装されるかはその実装に左右され、削除してから挿入を行うというように別々の 2 つの操作として実装することもあれば、置き換えを行うというように 1 つの基本操作として実装することもあります。

パラメータ:
offset - 子要素のインデックス
length - 削除するテキストの長さ。 0 の場合は 何も削除されない
text - 挿入するテキスト。 null の場合、テキストは挿入されない
attrs - 挿入されたテキストの属性を示す AttributeSet。 null も可。 空の属性セットとして扱われるが、 サブクラスで正確な解釈をする
例外:
BadLocationException - 指定された位置が ドキュメント内の有効な位置でない場合
導入されたバージョン:
1.4

insertString

public void insertString(int offs,
                         String str,
                         AttributeSet a)
                  throws BadLocationException
ドキュメントに内容を挿入します。内容の挿入によって、実際の変更が起きるまでは書き込みロックが保持されます。 そのあとで、書き込みロックをグラブしているスレッド上のオブザーバに通知が行われます。

このメソッドはスレッドに対して安全ですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。

定義:
インタフェース Document 内の insertString
パラメータ:
offs - 開始オフセット <= 0
str - 挿入する文字列。null や空の文字列の場合は何もしない
a - 挿入されたコンテンツの属性
例外:
BadLocationException - 指定された挿入位置が ドキュメント内の有効な位置でない場合
関連項目:
Document.insertString(int, java.lang.String, javax.swing.text.AttributeSet)

getText

public String getText(int offset,
                      int length)
               throws BadLocationException
ドキュメントからテキストのシーケンスを取得します。

定義:
インタフェース Document 内の getText
パラメータ:
offset - 開始オフセット <= 0
length - 検索対象の文字数 >= 0
戻り値:
テキスト
例外:
BadLocationException - 指定された範囲に、ドキュメント内の 無効な位置が含まれる場合
関連項目:
Document.getText(int, int)

getText

public void getText(int offset,
                    int length,
                    Segment txt)
             throws BadLocationException
ドキュメントの指定部分内にあるテキストを取得します。

txt パラメータの partialReturn プロパティーが false の場合、Segment で返されたデータは、要求された長さ全体になり、データの格納方法によってコピーになる場合とならない場合があります。partialReturn プロパティーが true の場合は、コピーを作成しなくても返すことが可能なテキストの量だけが返されます。部分的に返すことで、ドキュメントの大部分をスキャンする場合のパフォーマンスが向上します。部分的に返す方法でドキュメント全体にアクセスする例を次に示します。

 

   int nleft = doc.getDocumentLength();
   Segment text = new Segment();
   int offs = 0;
   text.setPartialReturn(true);   
   while (nleft > 0) {
       doc.getText(offs, nleft, text);
       // do something with text
       nleft -= text.count;
       offs += text.count;
   }
 

定義:
インタフェース Document 内の getText
パラメータ:
offset - 開始オフセット <= 0
length - 検索対象の文字数 >= 0
txt - テキストを取得する Segment オブジェクト
例外:
BadLocationException - 指定された範囲に、ドキュメント内の 無効な位置が含まれる場合

createPosition

public Position createPosition(int offs)
                        throws BadLocationException
ドキュメントが変更されたときに、変更を追跡する位置を返します。

このメソッドはスレッドに対して安全ですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。

定義:
インタフェース Document 内の createPosition
パラメータ:
offs - モデル内の位置 >= 0
戻り値:
位置
例外:
BadLocationException - 指定された位置が、関連するドキュメント内の 有効な位置を示さない場合
関連項目:
Document.createPosition(int)

getStartPosition

public final Position getStartPosition()
ドキュメントの先頭を表す位置を返します。返された位置は、変更を追跡してドキュメントの先頭に常に位置するために利用できます。

定義:
インタフェース Document 内の getStartPosition
戻り値:
位置

getEndPosition

public final Position getEndPosition()
ドキュメントの末尾を表す位置を返します。返された位置は、変更を追跡してドキュメントの末尾に常に位置するために利用できます。

定義:
インタフェース Document 内の getEndPosition
戻り値:
位置

getRootElements

public Element[] getRootElements()
定義されているルート要素をすべて取得します。通常、ルート要素は 1 つしかありません。 そのため、デフォルトの実装ではデフォルトルート要素が返されます。

定義:
インタフェース Document 内の getRootElements
戻り値:
ルート要素

getDefaultRootElement

public abstract Element getDefaultRootElement()
ルート要素を返します。要素の構造にビューを割り当てる別の機構が提供されないかぎり、このルート要素がビューのベースになります。

定義:
インタフェース Document 内の getDefaultRootElement
戻り値:
ルート要素
関連項目:
Document.getDefaultRootElement()

getBidiRootElement

public Element getBidiRootElement()
ドキュメントの双方向構造のルート要素を返します。このルート要素の子は、指定された Unicode 双方向構造レベルの文字の並びを示します。


getParagraphElement

public abstract Element getParagraphElement(int pos)
指定された位置を保持する段落要素を取得します。サブクラスは、何が段落を構成するものであるのかを自身で定義しなければいけません。そのときは、段落を構成するものが、少なくともテキストのチャンクであって、それに対して Unicode の双方向アルゴリズムを実行できる必要があることに注意してください。

パラメータ:
pos - 開始オフセット <= 0
戻り値:
要素

getAttributeContext

protected final AbstractDocument.AttributeContext getAttributeContext()
属性を管理するためのコンテキストを返します。このメソッドは、事実上 AttributeSet 情報の圧縮に使用する方法を確立します。

戻り値:
コンテキスト

insertUpdate

protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng,
                            AttributeSet attr)
ドキュメント構造をテキスト挿入の結果で更新します。これは、書き込みロック内で発生します。このクラスのサブクラスがこのメソッドをふたたび実装した場合は、スーパークラスにも処理を委譲します。

パラメータ:
chng - 変更の説明
attr - 変更の属性

removeUpdate

protected void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
ドキュメント構造をテキスト削除の結果で更新します。このメソッドの呼び出しは、テキストが Content から実際に削除される以前に実行されます。これは、書き込みロック内で発生します。このクラスのサブクラスがこのメソッドをふたたび実装した場合は、スーパークラスにも処理を委譲します。

パラメータ:
chng - 変更の説明

postRemoveUpdate

protected void postRemoveUpdate(AbstractDocument.DefaultDocumentEvent chng)
ドキュメント構造をテキスト削除の結果で更新します。このメソッドの呼び出しは、テキストが Content から実際に削除されたあとに実行されます。これは、書き込みロック内で発生します。このクラスのサブクラスがこのメソッドをふたたび実装した場合は、スーパークラスにも処理を委譲します。

パラメータ:
chng - 変更の説明

dump

public void dump(PrintStream out)
診断用のダンプを出力します。

パラメータ:
out - 出力ストリーム

getContent

protected final AbstractDocument.Content getContent()
ドキュメントの内容を取得します。

戻り値:
コンテンツ

createLeafElement

protected Element createLeafElement(Element parent,
                                    AttributeSet a,
                                    int p0,
                                    int p1)
ドキュメントの葉の要素を作成します。ドキュメントの構造を示すために作成される要素のフックです。この実装が構造と内容を分離したままに保つので、内容の拡大に応じて要素が自動的に成長し、それに既存の要素の分岐 (枝) が続きます。使用される要素の型に柔軟性を与えるように要素を生成する方法については、ドキュメント自体で決定する必要があります。

パラメータ:
parent - 親要素
a - 要素の属性
p0 - 範囲の始点 >= 0
p1 - 範囲の終点 >= p0
戻り値:
新規要素

createBranchElement

protected Element createBranchElement(Element parent,
                                      AttributeSet a)
ドキュメントの枝の要素を作成します。この要素には、ほかの要素 (複数可) を含めることができます。

パラメータ:
parent - 親要素
a - 属性
戻り値:
要素

getCurrentWriter

protected final Thread getCurrentWriter()
現在の書き込みスレッドがあれば、それを取得します。メソッドが既存の変更の一部として呼び出されているかどうか、あるいは、ロックを取得して新しいトランザクションを開始する必要があるかどうかを区別するために使えます。

戻り値:
ドキュメントを変更しているアクティブなスレッド。 進行中の変更がない場合は null

writeLock

protected final void writeLock()
ロックを取得して、ロックが保護しているドキュメントの変更を開始できるようにします。ロックの取得は、書き込み、変更の通知、あるいは読み込みが行われている間はできません。また、スレッドは、ドキュメント通知内から追加の writeLock を取得しようとしないかぎり、複数の writeLock を取得できます。DocumentListener 通知内から writeLock を取得しようとすると、IllegalStateException となります。スレッドごとに複数の writeLock を取得する機能により、サブクラスは writeLock を取得し、多数の操作を実行してから、ロックを開放できます。

writeLock の呼び出しは、writeUnlock の呼び出しと回数が同じである必要があります。そうでないと、Document がロック状態のままになり、読み込みや書き込みを実行できません。

例外:
IllegalStateException - 不正なロックを試みた場合にスローされる。ドキュメントが適切に実装されていれば、ドキュメントリスナーがドキュメントの変更を試みた場合にのみこの例外が発生する。こうした状況は、Bean イベントモデルに違反している。このイベントモデルでは配信の順序に保証はなく、変更が許可される前に、すべてのリスナーに通知される必要がある

writeUnlock

protected final void writeUnlock()
以前 writeLock 経由で取得された書き込みロックを解除します。ロック数を 1 つ減らしたあと、未処理のロックがない場合は、新しい書き込み側または読み込み側が許可されます。

関連項目:
writeLock()

readLock

public final void readLock()
ロックを取得して、ドキュメントからなんらかの状態の読み込みを開始できるようにします。複数のリーダーが同時に存在できます。リスナーに対する変更の通知が完了するまで書き込みは読み込みをブロックします。ドキュメントロックが誤って取得されないように、このメソッドは注意深く使用する必要があります。readLock メソッドと同じ数だけ、readUnlock を呼び出してください。

関連項目:
readUnlock()

readUnlock

public final void readUnlock()
読み込みのロックを解除します。読み込みの 1 つが完了したことを通知します。ほかにリーダーがなければ、書き込みを再開できます。このメソッドの呼び出し回数は、readLock の呼び出し回数と同じにする必要があるので、これを保証するために finally 文の中で使います。次に例を示します。  

     readLock();
     try {
         // do something
     } finally {
         readUnlock();
     }
 

関連項目:
readLock()

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。