|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.swing.text.AbstractDocument javax.swing.text.DefaultStyledDocument javax.swing.text.html.HTMLDocument
public class HTMLDocument
HTML をモデル化するドキュメントです。このモデルの目的は、ドキュメントのブラウズと編集の両方をサポートすることです。このため、HTML ドキュメントによって記述された構造は、デフォルトでは正確に複製されません。デフォルトでモデル化される要素構造は、HTMLDocument.HTMLReader
クラスによって構築されます。このクラスは、パーサに必要な HTMLEditorKit.ParserCallback
プロトコルを実装しています。構造を変更するには、HTMLReader
クラスをサブクラス化し、getReader(int)
メソッドを実装し直して新しいリーダの実装を返すようにします。生成されるデフォルトの構造については、HTMLReader
のマニュアルを参照してください。デフォルトの構造は、ドキュメントの内容が損なわれないことを意図して実装されていますが、HTML 形式を生成し直すときに異なった形式になることもあります。
このドキュメントは、HTML だけをモデル化しており、ビューの属性はドキュメント内に格納されません。要素は、StyleContext.NameAttribute
属性によって識別されます。この属性は必ず、要素の種類を識別する HTML.Tag
型の値を持っています。コメントのように、合成される要素もあります。HTMLFactory
はこの属性を使って構築するビューの種類を決定します。
このドキュメントは、追加読み込みをサポートしています。TokenThreshold
プロパティにより、どれくらいの量の解析がバッファに格納されるとドキュメントの要素構造の更新を行うかを制御します。このプロパティは、EditorKit
で設定されるため、サブクラスから無効にすることができます。
Base
プロパティは、相対 URL をどの URL に解決するかを決定します。プロパティの値が URL の場合、デフォルトでは、Base
プロパティは、Document.StreamDescriptionProperty
になります。<BASE> タグが検出された場合、ベースは、そのタグで指定された URL になります。ベース URL はプロパティなので、直接設定できます。
このドキュメントで使用するデフォルトのコンテンツ記憶機構は、ギャップバッファ (GapContent
) です。別の機構を指定するには、Content
の実装を引数に取るコンストラクタを使います。
入れ子のクラスの概要 | |
---|---|
class |
HTMLDocument.BlockElement
HTML の構造 block を表す要素です。 |
class |
HTMLDocument.HTMLReader
HTML ドキュメントを HTML 要素構造とともにロードするための HTML リーダです。 |
static class |
HTMLDocument.Iterator
特定のタイプのタグに対して繰り返し処理を実行する反復子です。 |
class |
HTMLDocument.RunElement
HTML 文字レベル属性のセットが割り当てられているテキストのチャンクを表す要素です。 |
クラス javax.swing.text.DefaultStyledDocument から継承された入れ子のクラス/インタフェース |
---|
DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.ElementBuffer, DefaultStyledDocument.ElementSpec, DefaultStyledDocument.SectionElement |
クラス javax.swing.text.AbstractDocument から継承された入れ子のクラス/インタフェース |
---|
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement |
フィールドの概要 | |
---|---|
static String |
AdditionalComments
ドキュメントプロパティのキーの値です。 |
クラス javax.swing.text.DefaultStyledDocument から継承されたフィールド |
---|
buffer, BUFFER_SIZE_DEFAULT |
クラス javax.swing.text.AbstractDocument から継承されたフィールド |
---|
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName |
インタフェース javax.swing.text.Document から継承されたフィールド |
---|
StreamDescriptionProperty, TitleProperty |
コンストラクタの概要 | |
---|---|
HTMLDocument()
デフォルトのバッファサイズとデフォルトの StyleSheet を使用して HTML ドキュメントを構築します。 |
|
HTMLDocument(AbstractDocument.Content c,
StyleSheet styles)
指定されたコンテンツ記憶域の実装と、指定されたスタイル/属性記憶機構とを使って HTML ドキュメントを作成します。 |
|
HTMLDocument(StyleSheet styles)
デフォルトのコンテンツ記憶域の実装と指定したスタイル/属性記憶域機構を使用して HTML ドキュメントを構築します。 |
メソッドの概要 | |
---|---|
protected void |
create(DefaultStyledDocument.ElementSpec[] data)
ドキュメントのコンテンツを、指定された要素仕様に置換します。 |
protected Element |
createBranchElement(Element parent,
AttributeSet a)
他の要素を格納できるドキュメントの枝の要素を作成します。 |
protected AbstractDocument.AbstractElement |
createDefaultRoot()
デフォルトのドキュメント構造を表すために使うルート要素を作成します。 |
protected Element |
createLeafElement(Element parent,
AttributeSet a,
int p0,
int p1)
テキストを直接表す (子を持たない) ドキュメントの葉の要素を作成します。 |
protected void |
fireChangedUpdate(DocumentEvent e)
このイベントタイプの通知を配信対象として登録しているリスナーすべてに通知します。 |
protected void |
fireUndoableEditUpdate(UndoableEditEvent e)
このイベントタイプの通知を配信対象として登録しているリスナーすべてに通知します。 |
URL |
getBase()
相対 URL を解決処理する位置を返します。 |
Element |
getElement(Element e,
Object attribute,
Object value)
属性を持った e の子要素である value 値を含む attribute を返します。 |
Element |
getElement(String id)
指定した id Attribute を持つ要素を返します。 |
HTMLDocument.Iterator |
getIterator(HTML.Tag t)
指定した HTML タグの種類の反復子を取得します。 |
HTMLEditorKit.Parser |
getParser()
既存のドキュメントに html を挿入するときに使用するパーサを返します。 |
boolean |
getPreservesUnknownTags()
未知のタグが見つかったときにパーサの監視する動作を返します。 |
HTMLEditorKit.ParserCallback |
getReader(int pos)
パーサが HTML ドキュメントをロードするときに使うリーダを取り出します。 |
HTMLEditorKit.ParserCallback |
getReader(int pos,
int popDepth,
int pushDepth,
HTML.Tag insertTag)
パーサが HTML ドキュメントをロードするために使うリーダを返します。 |
StyleSheet |
getStyleSheet()
HTML ドキュメント自体が指定するドキュメント固有の表示規則 (CSS) を持つ、 StyleSheet を取得します。 |
int |
getTokenThreshold()
ドキュメントの要素構造の更新前に、バッファに格納されるトークンの数を取得します。 |
protected void |
insert(int offset,
DefaultStyledDocument.ElementSpec[] data)
新しい要素を一括して挿入します。 |
void |
insertAfterEnd(Element elem,
String htmlText)
指定要素が終了後に文字列として指定された HTML を挿入します。 |
void |
insertAfterStart(Element elem,
String htmlText)
要素の開始位置に文字列として指定された HTML を挿入します。 |
void |
insertBeforeEnd(Element elem,
String htmlText)
要素の終了位置に文字列として指定された HTML を挿入します。 |
void |
insertBeforeStart(Element elem,
String htmlText)
指定された要素が開始される前に文字列として指定された HTML を挿入します。 |
protected void |
insertUpdate(AbstractDocument.DefaultDocumentEvent chng,
AttributeSet attr)
テキストの挿入に応じてドキュメントを更新します。 |
void |
processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
HTML フレーム内でドキュメントによって生成された HyperlinkEvents の処理をします。 |
void |
setBase(URL u)
相対 URL を解決処理する位置を設定します。 |
void |
setInnerHTML(Element elem,
String htmlText)
指定された要素の子を HTML 文字列として指定されたコンテンツと置き換えます。 |
void |
setOuterHTML(Element elem,
String htmlText)
指定された親の要素を HTML 文字列として指定されたコンテンツと置き換えます。 |
void |
setParagraphAttributes(int offset,
int length,
AttributeSet s,
boolean replace)
段落に属性を設定します。 |
void |
setParser(HTMLEditorKit.Parser parser)
既存のドキュメントに setInnerHTML や setOuterHTML などの html を挿入するときにメソッドが使用するパーサを設定します。 |
void |
setPreservesUnknownTags(boolean preservesTags)
パーサによって未知のタグを処理する方法を判定します。 |
void |
setTokenThreshold(int n)
ドキュメントの要素構造の更新前に、バッファに格納されるトークンの数を設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
インタフェース javax.swing.text.Document から継承されたメソッド |
---|
addUndoableEditListener, createPosition, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, insertString, putProperty, remove, removeUndoableEditListener, render |
フィールドの詳細 |
---|
public static final String AdditionalComments
コンストラクタの詳細 |
---|
public HTMLDocument()
StyleSheet
を使用して HTML ドキュメントを構築します。これは、コンストラクタ HTMLDocument(Content, StyleSheet)
の簡易メソッドです。
public HTMLDocument(StyleSheet styles)
HTMLDocument(Content, StyleSheet)
の簡易メソッドです。
styles
- スタイルpublic HTMLDocument(AbstractDocument.Content c, StyleSheet styles)
c
- コンテンツのコンテナstyles
- スタイルメソッドの詳細 |
---|
public HTMLEditorKit.ParserCallback getReader(int pos)
HTMLDocument.HTMLReader
のインスタンスを返すために実装されます。サブクラスは、必要であれば、カスタムタグや文字スタイル要素の構造的表現の処理などのために、このメソッドを再実装してドキュメントの構造化手段を変更できます。
pos
- 開始位置
public HTMLEditorKit.ParserCallback getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag)
HTMLDocument.HTMLReader
のインスタンスを返すために実装されます。サブクラスは、必要であれば、カスタムタグや文字スタイル要素の構造的表現の処理などのために、このメソッドを再実装してドキュメントの構造化手段を変更できます。
これは、getReader(int, int, int, HTML.Tag, TRUE)
の簡易メソッドです。
popDepth
- 挿入の前に生成される ElementSpec.EndTagTypes
タグの数pushDepth
- 終了タグの生成後、挿入前に生成される ElementSpec.JoinNextDirection
の方向を持つ ElementSpec.StartTagTypes
のタグの数insertTag
- ドキュメントへの挿入を開始する最初のタグ
public URL getBase()
public void setBase(URL u)
StyleSheet
のベースを u
とドキュメントのベースに設定します。
u
- 該当するベース URLprotected void insert(int offset, DefaultStyledDocument.ElementSpec[] data) throws BadLocationException
DefaultStyledDocument
内の insert
offset
- 開始オフセットdata
- 要素データ
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を表さない場合protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
DefaultStyledDocument
内の insertUpdate
chng
- ドキュメント変更の説明attr
- 属性protected void create(DefaultStyledDocument.ElementSpec[] data)
DefaultStyledDocument
内の create
data
- ドキュメントの新しいコンテンツpublic void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
このメソッドはスレッドに対して安全ですが、ほとんどの Swing メソッドは違います。詳細は、「Threads and Swing」を参照してください。
StyledDocument
内の setParagraphAttributes
DefaultStyledDocument
内の setParagraphAttributes
offset
- 段落に対するオフセット (最小でも 0 でなければならない)length
- 影響を受ける文字数 (最小でも 0 でなければならない)s
- 属性replace
- 既存の属性を置換するか、マージするかpublic StyleSheet getStyleSheet()
StyleSheet
を取得します。
StyleSheet
public HTMLDocument.Iterator getIterator(HTML.Tag t)
t
- 要求した HTML.Tag
Iterator
HTML.Tag
protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
HTMLDocument.RunElement
型の要素を返すために実装されます。
AbstractDocument
内の createLeafElement
parent
- 親要素a
- 要素の属性p0
- 範囲の始点 (最小でも 0 でなければならない)p1
- 範囲の終点 (最小でも p0 でなければならない)
protected Element createBranchElement(Element parent, AttributeSet a)
HTMLDocument.BlockElement
型の要素を返すために実装されます。
AbstractDocument
内の createBranchElement
parent
- 親要素a
- 属性
protected AbstractDocument.AbstractElement createDefaultRoot()
DefaultStyledDocument
内の createDefaultRoot
public void setTokenThreshold(int n)
n
- バッファされるトークンの数public int getTokenThreshold()
Integer.MAX_VALUE
です。
public void setPreservesUnknownTags(boolean preservesTags)
preservesTags
- 未知のタグがモデルに保存される場合は true、そうでない場合、タグはモデルから外されるHTML.Tag
public boolean getPreservesUnknownTags()
HTML.Tag
public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
HyperlinkEvents
の処理をします。HyperlinkEvents
タイプは、パラメータが示す通り、HTMLFrameHyperlinkEvent
です。HyperlinkEvents
に含まれる通常の情報のほかに、このイベントはクリックが発生したフレーム (発生元の要素) に対応する要素、およびターゲット名を格納しています。ターゲット名は次に示す 4 種類の値のどれかです。HTML.Attribute.SRC
の値を変更するアクションが発生し、ChangedUpdate
イベントをトリガします。 ターゲットが _parent の場合、<FRAMESET> 要素である親要素を削除し、新しい <FRAME> 要素を挿入したあと、HTML.Attribute.SRC
属性が送信先の URL と等しい値を持つように設定して RemovedUpdate
および InsertUpdate
をトリガします。
ターゲットが _top の場合、このメソッドは何も処理を行いません。_top は、フレーム用のビューの実装 (具体的には FrameView
) で処理されます。_top はドキュメント全体の置き換えを意味するため、置換対象ドキュメントの外部で処理してください。
ターゲットがフレーム名の場合、ターゲットと同じ名前の要素を要素階層から探し、その要素の HTML.Attribute.SRC
属性を更新して ChangedUpdate
イベントをトリガします。
e
- イベントpublic void setParser(HTMLEditorKit.Parser parser)
setInnerHTML
や setOuterHTML
などの html を挿入するときにメソッドが使用するパーサを設定します。
HTMLEditorKit.createDefaultDocument
はパーサを設定します。手動で HTMLDocument
ドキュメントを作成する場合は、それぞれに対応したパーサを設定するようにしてください。
parser
- テキストの挿入に使われるパーサpublic HTMLEditorKit.Parser getParser()
public void setInnerHTML(Element elem, String htmlText) throws BadLocationException, IOException
2 つ以上のイベントとして表示され、削除に続き n を挿入します。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser
を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument
メソッドにより生成された場合です。
elem
- 子が置き換えられる枝の要素htmlText
- 解析され、elem
に割り当てられる文字列
IllegalArgumentException
- elem
が葉の場合
IllegalStateException
- HTMLEditorKit.Parser
が未定義の場合
BadLocationException
IOException
public void setOuterHTML(Element elem, String htmlText) throws BadLocationException, IOException
2 つ以上のイベントとして表示され、削除に続き n を挿入します。
葉を置きかえるときには、改行が必要な場合に改行があるかどうかを確認してください。これで追加要素が挿入されます。<img> を持つ改行を含んだ文字要素を置き換えようとする場合は、一つはイメージ用、もう一つは改行用に 2 つの要素を生成することになります。
要素の長さを置き換えると、2 つの要素で終了します。つまり、setOuterHTML(getCharacterElement(getLength()), "blah") が最終的に 2 つの葉要素になります。1 つは blah を表し、もう 1 つは末尾要素を表します。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument
メソッドにより生成された場合です。
elem
- 子が置き換えられる枝の要素htmlText
- 解析され、elem
に割り当てられる文字列
IllegalStateException
- HTMLEditorKit.Parser が未設定の場合
BadLocationException
IOException
public void insertAfterStart(Element elem, String htmlText) throws BadLocationException, IOException
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser
を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument
メソッドにより生成された場合です。
elem
- 新しいテキストのルートである枝の要素htmlText
- 解析され、elem
に割り当てられる文字列
IllegalStateException
- HTMLEditorKit.Parser がドキュメントに設定されていない場合
BadLocationException
IOException
public void insertBeforeEnd(Element elem, String htmlText) throws BadLocationException, IOException
elem
の子が葉で、elem.getEndOffset() - 1
の文字が改行である場合、改行後にテキストがないようにするために改行前に挿入します。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser
を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument
メソッドにより生成された場合です。
elem
- 新しいテキストのルートである要素htmlText
- 解析され、elem
に割り当てられる文字列
IllegalStateException
- HTMLEditorKit.Parser がドキュメントに設定されていない場合
BadLocationException
IOException
public void insertBeforeStart(Element elem, String htmlText) throws BadLocationException, IOException
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser
を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument
メソッドにより生成された場合です。
elem
- 新しいテキストのルートである要素htmlText
- 解析され、elem
に割り当てられる文字列
IllegalStateException
- HTMLEditorKit.Parser がドキュメントに設定されていない場合
BadLocationException
IOException
public void insertAfterEnd(Element elem, String htmlText) throws BadLocationException, IOException
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser
を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument
メソッドにより生成された場合です。
elem
- 新しいテキストのルートである要素htmlText
- 解析され、elem
に割り当てられる文字列
IllegalStateException
- HTMLEditorKit.Parser がドキュメントに設定されていない場合
BadLocationException
IOException
public Element getElement(String id)
Attribute
を持つ要素を返します。要素が見つからない場合は null
が返されます。このメソッドは Attribute
に対して働き、文字タグに対しては働きません。HTML の簡単な例 <a id="HelloThere">
において、属性は id、文字タグは a です。このメソッドは getElement(RootElement, HTML.Attribute.id, id)
の簡易メソッドです。これは、スレッドに対して安全ではありません。
id
- 目的の Attribute
の文字列表現
Attribute
を持つ要素。見つからない場合や id
が null
の場合は null
HTML.Attribute
public Element getElement(Element e, Object attribute, Object value)
e
の子要素である value
値を含む attribute
を返します。見つからない場合は null
。このメソッドはスレッドに対して安全ではありません。
e
- 検索を開始するルート要素attribute
- 目的の Attribute
value
- 指定した Attribute
の値
Attribute
と指定した value
を持つ要素。見つからない場合は null
HTML.Attribute
protected void fireChangedUpdate(DocumentEvent e)
AbstractDocument
内の fireChangedUpdate
e
- イベントEventListenerList
protected void fireUndoableEditUpdate(UndoableEditEvent e)
AbstractDocument
内の fireUndoableEditUpdate
e
- イベントEventListenerList
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。