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以降、すべてのJavaBeans(tm)用の長期間の格納サポートが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メソッドは違います。詳細は、Swingでの並行性に関連しているサイトを参照してください。
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, 2014, Oracle and/or its affiliates. All rights reserved.