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.SectionElement
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement
修飾子と型 | フィールドと説明 |
---|---|
static String |
AdditionalComments
ドキュメント・プロパティのキーの値です。
|
buffer, BUFFER_SIZE_DEFAULT
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
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)
属性(値
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, styleChanged
addUndoableEditListener, 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, writeUnlock
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addUndoableEditListener, createPosition, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, insertString, putProperty, remove, removeUndoableEditListener, render
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
insert
、クラス: DefaultStyledDocument
offset
- 開始オフセットdata
- 要素データBadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合。protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
insertUpdate
、クラス: DefaultStyledDocument
chng
- ドキュメント変更の説明attr
- 属性protected void create(DefaultStyledDocument.ElementSpec[] data)
create
、クラス: DefaultStyledDocument
data
- ドキュメントの新しいコンテンツpublic void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。詳細は、Swingでの並行性に関連しているサイトを参照してください。
setParagraphAttributes
、インタフェース: StyledDocument
setParagraphAttributes
、クラス: DefaultStyledDocument
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
型の要素を返すために実装されます。createLeafElement
、クラス: AbstractDocument
parent
- 親要素a
- 要素の属性p0
- 範囲の始点(最小でも0でなければならない)p1
- 範囲の終点(最小でもp0でなければならない)protected Element createBranchElement(Element parent, AttributeSet a)
HTMLDocument.BlockElement
型の要素を返すために実装されます。createBranchElement
、クラス: AbstractDocument
parent
- 親要素a
- 属性protected AbstractDocument.AbstractElement createDefaultRoot()
createDefaultRoot
、クラス: DefaultStyledDocument
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
の処理をします。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
が未定義の場合BadLocationException
IOException
public 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が設定されていない場合BadLocationException
IOException
public 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が設定されていない場合BadLocationException
IOException
public 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が設定されていない場合BadLocationException
IOException
public 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が設定されていない場合BadLocationException
IOException
public 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が設定されていない場合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
を持つ要素。それが見つからない場合はnull
。または、id
がnull
の場合はnull
HTML.Attribute
public Element getElement(Element e, Object attribute, Object value)
value
を持つattribute
)を格納するe
の子要素を返します。見つからない場合はnull
を返します。このメソッドはスレッドに対して安全ではありません。e
- 検索を開始するルート要素attribute
- 目的のAttribute
value
- 指定されたAttribute
の値Attribute
と指定されたvalue
を持つ要素。それが見つからない場合はnull
HTML.Attribute
protected void fireChangedUpdate(DocumentEvent e)
fireChangedUpdate
、クラス: AbstractDocument
e
- イベントEventListenerList
protected void fireUndoableEditUpdate(UndoableEditEvent e)
fireUndoableEditUpdate
、クラス: AbstractDocument
e
- イベントEventListenerList
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.