public class HTMLDocument extends DefaultStyledDocument
HTMLDocument.HTMLReader クラスによって構築されます。このクラスは、パーサーに必要な HTMLEditorKit.ParserCallback プロトコルを実装しています。構造を変更するには、HTMLReader クラスをサブクラス化し、getReader(int) メソッドを実装し直して新しいリーダーの実装を返すようにします。生成されるデフォルトの構造については、HTMLReader のドキュメントを参照してください。デフォルトの構造は、ドキュメントの内容が損なわれないことを意図して実装されていますが、HTML 形式を生成し直すときに異なった形式になることもあります。
このドキュメントは、HTML だけをモデル化しており、ビューの属性はドキュメント内に格納されません。要素は、StyleContext.NameAttribute 属性によって識別されます。この属性は必ず、要素の種類を識別する HTML.Tag 型の値を持っています。コメントのように、合成される要素もあります。HTMLFactory はこの属性を使って構築するビューの種類を決定します。
このドキュメントは、追加読み込みをサポートしています。TokenThreshold プロパティーにより、どれくらいの量の解析がバッファーに格納されるとドキュメントの要素構造の更新を行うかを制御します。このプロパティーは、EditorKit で設定されるため、サブクラスから無効にすることができます。
Base プロパティーは、相対 URL をどの URL に対して解決するかを決定します。プロパティーの値が URL の場合、デフォルトでは、これは Document.StreamDescriptionProperty になります。<BASE> タグが検出された場合、ベースは、そのタグで指定された URL になります。ベース URL はプロパティーなので、直接設定できます。
このドキュメントで使用するデフォルトのコンテンツストレージメカニズムは、ギャップバッファー (GapContent) です。別のメカニズムを指定するには、Content の実装を引数に取るコンストラクタを使います。
HTMLDocument を変更するために Document や StyledDocument によって提供されているメソッドのほかに、HTMLDocument にはいくつかの簡易メソッドも用意されています。次のメソッドを使用すると、HTML コンテンツを既存のドキュメントに挿入できます。
setInnerHTML(Element, String)setOuterHTML(Element, String)insertBeforeStart(Element, String)insertAfterStart(Element, String)insertBeforeEnd(Element, String)insertAfterEnd(Element, String)次の例は、これらのメソッドの使用方法を示しています。各例では、HTML ドキュメントが次の方法で初期化されることを前提としています。
JEditorPane p = new JEditorPane();
p.setContentType("text/html");
p.setText("..."); // Document text is provided below.
HTMLDocument d = (HTMLDocument) p.getDocument();
次の HTML コンテンツでは
<html>
<head>
<title>An example HTMLDocument</title>
<style type="text/css">
div { background-color: silver; }
ul { color: red; }
</style>
</head>
<body>
<div id="BOX">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
</body>
</html>
HTML ドキュメントを変更するためのすべてにメソッドに Element が必要です。HTML ドキュメントから要素を取得するには、getElement(Element e, Object attribute, Object value) メソッドを使用します。それは、深さ優先順で、指定された値を持つ指定された属性を含む最初の子孫の要素を返します。たとえば、d.getElement(d.getDefaultRootElement(), StyleConstants.NameAttribute, HTML.Tag.P) は最初の段落要素を返します。
要素を検索するための便利で簡単な方法は getElement(String) メソッドであり、これは指定された値に一致する ID 属性を持つ要素を返します。たとえば、d.getElement("BOX") は DIV 要素を返します。
また、getIterator(HTML.Tag t) メソッドも、ドキュメント内の指定された HTML タグのすべての出現箇所を検索するために使用できます。
葉以外の要素の既存の子の前後に要素を挿入するには、insertAfterStart および insertBeforeEnd メソッドを使用します。たとえば、e が DIV 要素である場合、d.insertAfterStart(e, "<ul><li>List Item</li></ul>") は最初の段落の前にそのリストを挿入し、d.insertBeforeEnd(e, "<ul><li>List Item</li></ul>") は最後の段落のあとにそのリストを挿入します。DIV ブロックは、新しく挿入された要素の親になります。
いずれかの要素の前後に兄弟要素を挿入するには、insertBeforeStart および insertAfterEnd メソッドを使用します。たとえば、e が DIV 要素である場合、d.insertBeforeStart(e, "<ul><li>List Item</li></ul>") は DIV 要素の前にそのリストを挿入し、d.insertAfterEnd(e, "<ul><li>List Item</li></ul>") は DIV 要素のあとにそのリストを挿入します。新しく挿入された要素は、DIV 要素の兄弟になります。
要素とそのすべての子孫を置換するには、setInnerHTML および setOuterHTML メソッドを使用します。たとえば、e が DIV 要素である場合、d.setInnerHTML(e, "<ul><li>List Item</li></ul>") はすべての子の段落をそのリストに置換し、d.setOuterHTML(e, "<ul><li>List Item</li></ul>") は DIV 要素自体を置換します。後者の場合、そのリストの親は BODY 要素になります。
次の表に、前述のドキュメントの例と各種メソッドの結果を示します。
| 例 | insertAfterStart |
insertBeforeEnd |
insertBeforeStart |
insertAfterEnd |
setInnerHTML |
setOuterHTML |
|---|---|---|---|---|---|---|
|
Paragraph 1 Paragraph 2 |
Paragraph 1 Paragraph 2 |
Paragraph 1 Paragraph 2
|
Paragraph 1 Paragraph 2 |
Paragraph 1 Paragraph 2
|
|
|
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースとの互換性がなくなる予定です。現在の直列化のサポートは、短期間の格納や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。1.4 以降、すべての JavaBeansTM 用の長期間の格納サポートが java.beans パッケージに追加されています。XMLEncoder を参照してください。
| 修飾子と型 | クラスと説明 |
|---|---|
class |
HTMLDocument.BlockElement
HTML の構造ブロックを表す要素です。
|
class |
HTMLDocument.HTMLReader
HTML ドキュメントを HTML 要素構造とともにロードするための HTML リーダーです。
|
static class |
HTMLDocument.Iterator
特定のタイプのタグに対して繰り返し処理を実行するイテレータです。
|
class |
HTMLDocument.RunElement
HTML 文字レベル属性のセットが割り当てられているテキストのチャンクを表す要素です。
|
DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.ElementBuffer, DefaultStyledDocument.ElementSpec, DefaultStyledDocument.SectionElementAbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement| 修飾子と型 | フィールドと説明 |
|---|---|
static String |
AdditionalComments
ドキュメントプロパティーのキーの値です。
|
buffer, BUFFER_SIZE_DEFAULTBAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementNameStreamDescriptionProperty, 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)
属性 (値
value を持つ attribute) を格納する e の子要素を返します。見つからない場合は null を返します。 |
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)
ドキュメントの要素構造の更新前に、バッファーに格納されるトークンの数を設定します。
|
addDocumentListener, addStyle, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, removeDocumentListener, removeElement, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, styleChangedaddUndoableEditListener, createPosition, dump, fireInsertUpdate, fireRemoveUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, insertString, postRemoveUpdate, putProperty, readLock, readUnlock, remove, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlockclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddUndoableEditListener, createPosition, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, insertString, putProperty, remove, removeUndoableEditListener, renderpublic 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
insert、クラス: DefaultStyledDocumentoffset - 開始オフセットdata - 要素データBadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を示さない場合。protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
insertUpdate、クラス: DefaultStyledDocumentchng - ドキュメント変更の説明attr - 属性protected void create(DefaultStyledDocument.ElementSpec[] data)
create、クラス: DefaultStyledDocumentdata - ドキュメントの新しいコンテンツpublic void setParagraphAttributes(int offset,
int length,
AttributeSet s,
boolean replace)
このメソッドはスレッドセーフですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。
setParagraphAttributes、インタフェース: StyledDocumentsetParagraphAttributes、クラス: DefaultStyledDocumentoffset - 段落に対するオフセット (最小でも 0 でなければならない)length - 影響を受ける文字数 (最小でも 0 でなければならない)s - 属性replace - 既存の属性を置換するか、マージするかpublic StyleSheet getStyleSheet()
StyleSheet を取得します。StyleSheetpublic HTMLDocument.Iterator getIterator(HTML.Tag t)
t - 要求された HTML.TagIteratorHTML.Tagprotected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
HTMLDocument.RunElement 型の要素を返すために実装されます。createLeafElement、クラス: AbstractDocumentparent - 親要素a - 要素の属性p0 - 範囲の始点 (最小でも 0 でなければならない)p1 - 範囲の終点 (最小でも p0 でなければならない)protected Element createBranchElement(Element parent, AttributeSet a)
HTMLDocument.BlockElement 型の要素を返すために実装されます。createBranchElement、クラス: AbstractDocumentparent - 親要素a - 属性protected AbstractDocument.AbstractElement createDefaultRoot()
createDefaultRoot、クラス: DefaultStyledDocumentpublic void setTokenThreshold(int n)
n - バッファーに格納されるトークンの数public int getTokenThreshold()
Integer.MAX_VALUE です。public void setPreservesUnknownTags(boolean preservesTags)
preservesTags - 未知のタグがモデルに保存される場合は true、そうでない場合、タグはモデルから外されるHTML.Tagpublic boolean getPreservesUnknownTags()
HTML.Tagpublic void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)
HyperlinkEvents の処理をします。HyperlinkEvent タイプは、パラメータが示すとおり、HTMLFrameHyperlinkEvent です。HyperlinkEvent に含まれる通常の情報のほかに、このイベントはクリックが発生したフレーム (発生元の要素) に対応する要素、およびターゲット名を格納しています。ターゲット名は次に示す 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 を挿入します。
次の構造を検討してください (elem パラメータは太字)。
<body>
|
<div>
/ \
<p> <p>
次の構造で setInnerHTML(elem, "<ul><li>") 結果を呼び出します (新規要素は赤字になります)。
<body>
|
<div>
\
<ul>
\
<li>
パラメータ elem は葉要素であってはいけません。そうでない場合は、IllegalArgumentException がスローされます。elem または htmlText パラメータが null の場合、ドキュメントは変更されません。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument メソッドにより生成された場合です。
elem - 子が置き換えられる枝の要素htmlText - 解析され、elem に割り当てられる文字列IllegalArgumentException - elem が葉の場合IllegalStateException - HTMLEditorKit.Parser が未定義の場合BadLocationExceptionIOExceptionpublic void setOuterHTML(Element elem, String htmlText) throws BadLocationException, IOException
2 つ以上のイベントとして表示され、削除に続き n を挿入します。
葉を置きかえるときには、改行が必要な場合に改行があるかどうかを確認してください。これによって追加要素が挿入されることがあります。<img> を持つ改行が含まれている文字要素を置き換えるとした場合、これによって 2 つの要素 (イメージ用に 1 つと改行用に 1 つ) が作成されることを考えてみてください。
要素を丸ごと置き換えようとすると、結果として 2 つの要素が生成される可能性がもっとも高くなります。たとえば、setOuterHTML(getCharacterElement (getLength()), "blah") を呼び出すと、最終的に葉の要素が 2 つ生成され、一方は「blah」を表し、もう一方は終了要素を表します。
次の構造を検討してください (elem パラメータは太字)。
<body>
|
<div>
/ \
<p> <p>
次の構造で setOuterHTML(elem, "<ul><li>") 結果を呼び出します (新規要素は赤字になります)。
<body>
|
<ul>
\
<li>
elem または htmlText パラメータが null の場合、ドキュメントは変更されません。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument メソッドにより生成された場合です。
elem - 置き換える要素htmlText - 解析されて、elem の代わりに挿入される文字列IllegalStateException - HTMLEditorKit.Parser が設定されていない場合BadLocationExceptionIOExceptionpublic void insertAfterStart(Element elem, String htmlText) throws BadLocationException, IOException
次の構造を検討してください (elem パラメータは太字)。
<body>
|
<div>
/ \
<p> <p>
次の構造で insertAfterStart(elem, "<ul><li>") 結果を呼び出します (新規要素は赤字になります)。
<body>
|
<div>
/ | \
<ul> <p> <p>
/
<li>
insertBeforeStart メソッドと異なり、新規要素は指定された要素の兄弟ではなく、子になります。
パラメータ elem は葉要素であってはいけません。そうでない場合は、IllegalArgumentException がスローされます。elem または htmlText パラメータが null の場合、ドキュメントは変更されません。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument メソッドにより生成された場合です。
elem - 新しいテキストのルートである枝の要素htmlText - 解析され、elem に割り当てられる文字列IllegalArgumentException - elem が葉の場合IllegalStateException - ドキュメントに HTMLEditorKit.Parser が設定されていない場合BadLocationExceptionIOExceptionpublic void insertBeforeEnd(Element elem, String htmlText) throws BadLocationException, IOException
elem の子が葉で、elem.getEndOffset() - 1 の文字が改行である場合、改行後にテキストがないようにするために改行前に挿入します。
次の構造を検討してください (elem パラメータは太字)。
<body>
|
<div>
/ \
<p> <p>
次の構造で insertBeforeEnd(elem, "<ul><li>") 結果を呼び出します (新規要素は赤字になります)。
<body>
|
<div>
/ | \
<p> <p> <ul>
\
<li>
insertAfterEnd メソッドと異なり、新規要素は指定された要素の兄弟ではなく、子になります。
パラメータ elem は葉要素であってはいけません。そうでない場合は、IllegalArgumentException がスローされます。elem または htmlText パラメータが null の場合、ドキュメントは変更されません。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument メソッドにより生成された場合です。
elem - 新しいテキストのルートである要素htmlText - 解析され、elem に割り当てられる文字列IllegalArgumentException - elem が葉の場合IllegalStateException - ドキュメントに HTMLEditorKit.Parser が設定されていない場合BadLocationExceptionIOExceptionpublic void insertBeforeStart(Element elem, String htmlText) throws BadLocationException, IOException
次の構造を検討してください (elem パラメータは太字)。
<body>
|
<div>
/ \
<p> <p>
次の構造で insertBeforeStart(elem, "<ul><li>") 結果を呼び出します (新規要素は赤字になります)。
<body>
/ \
<ul> <div>
/ / \
<li> <p> <p>
insertAfterStart メソッドと異なり、新規要素は指定された要素の子ではなく、兄弟になります。
elem または htmlText パラメータが null の場合、ドキュメントは変更されません。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument メソッドにより生成された場合です。
elem - コンテンツがその前に挿入される要素htmlText - 解析されて、elem の前に挿入される文字列IllegalStateException - ドキュメントに HTMLEditorKit.Parser が設定されていない場合BadLocationExceptionIOExceptionpublic void insertAfterEnd(Element elem, String htmlText) throws BadLocationException, IOException
次の構造を検討してください (elem パラメータは太字)。
<body>
|
<div>
/ \
<p> <p>
次の構造で insertAfterEnd(elem, "<ul><li>") 結果を呼び出します (新規要素は赤字になります)。
<body>
/ \
<div> <ul>
/ \ \
<p> <p> <li>
insertBeforeEnd メソッドと異なり、新規要素は指定された要素の子ではなく、兄弟になります。
elem または htmlText パラメータが null の場合、ドキュメントは変更されません。
正しく機能させるために、ドキュメントは HTMLEditorKit.Parser を用意する必要があります。これは、ドキュメントが HTMLEditorKit から createDefaultDocument メソッドにより生成された場合です。
elem - コンテンツがそのあとに挿入される要素htmlText - 解析されて、elem のあとに挿入される文字列IllegalStateException - ドキュメントに HTMLEditorKit.Parser が設定されていない場合BadLocationExceptionIOExceptionpublic Element getElement(String id)
Attribute を持つ要素を返します。要素が見つからない場合は null が返されます。このメソッドは Attribute に対して働き、文字タグに対しては働かないことに注意してください。HTML の簡単な例 <a id="HelloThere"> において、属性は「id」、文字タグは「a」です。これは getElement(RootElement, HTML.Attribute.id, id) の簡易メソッドです。このメソッドはスレッドに対して安全ではありません。id - 目的の Attribute を表す文字列Attribute を持つ要素。それが見つからない場合は null。または、id が null の場合は nullHTML.Attributepublic Element getElement(Element e, Object attribute, Object value)
value を持つ attribute) を格納する e の子要素を返します。見つからない場合は null を返します。このメソッドはスレッドに対して安全ではありません。e - 検索を開始するルート要素attribute - 目的の Attributevalue - 指定された Attribute の値Attribute と指定された value を持つ要素。それが見つからない場合は nullHTML.Attributeprotected void fireChangedUpdate(DocumentEvent e)
fireChangedUpdate、クラス: AbstractDocumente - イベントEventListenerListprotected void fireUndoableEditUpdate(UndoableEditEvent e)
fireUndoableEditUpdate、クラス: AbstractDocumente - イベントEventListenerList バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.