- すべての実装されたインタフェース:
Serializable
,Document
,StyledDocument
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の変更
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: blue; } </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の長期ストレージのサポートがjava.beans
パッケージに追加されました。 XMLEncoder
を参照してください。
-
ネストされたクラスのサマリー
修飾子と型クラス説明class
HTMLの構造ブロックを表す要素です。class
HTMLドキュメントをHTML要素構造とともにロードするためのHTMLリーダーです。static class
特定のタイプのタグに対して繰返し処理を実行するイテレータです。class
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
-
フィールドのサマリー
クラス 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
-
コンストラクタのサマリー
コンストラクタ説明デフォルトのバッファ・サイズとデフォルトの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
デフォルトのドキュメント構造を表すために使うルート要素を作成します。protected Element
createLeafElement(Element parent, AttributeSet a, int p0, int p1)
テキストを直接表す(子を持たない)ドキュメントの葉の要素を作成します。protected void
このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。protected void
このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。getBase()
相対URLを解決処理する位置を返します。getElement(String id)
指定したidAttribute
を持つ要素を返します。getElement(Element e, Object attribute, Object value)
属性(値value
を持つattribute
)を格納するe
の子要素を返します。見つからない場合はnull
を返します。getIterator(HTML.Tag t)
指定したHTMLタグのイテレータを取得します。既存のドキュメントにhtmlを挿入するときに使用するパーサーを返します。boolean
未知のタグが見つかったときにパーサーの監視する動作を返します。getReader(int pos)
パーサーがHTMLドキュメントをロードするときに使うリーダーを取得します。パーサーがHTMLドキュメントをロードするために使うリーダーを返します。HTMLドキュメント自体が指定するドキュメント固有の表示規則(CSS)を持つ、StyleSheet
を取得します。int
ドキュメントの要素構造の更新前に、バッファに格納されるトークンの数を取得します。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
ドキュメント構造をテキスト挿入の結果で更新します。void
HTMLフレーム内でドキュメントによって生成されたHyperlinkEvents
の処理をします。void
相対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)
ドキュメントの要素構造の更新前に、バッファに格納されるトークンの数を設定します。クラス javax.swing.text.DefaultStyledDocumentで宣言されたメソッド
addDocumentListener, addStyle, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, removeDocumentListener, removeElement, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, styleChanged
クラス javax.swing.text.AbstractDocumentで宣言されたメソッド
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
クラス 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
-
フィールド詳細
-
コンストラクタの詳細
-
HTMLDocument
public HTMLDocument()デフォルトのバッファ・サイズとデフォルトのStyleSheet
を使用してHTMLドキュメントを構築します。 これは、コンストラクタHTMLDocument(Content, StyleSheet)
の簡易メソッドです。 -
HTMLDocument
public HTMLDocument(StyleSheet styles)デフォルトのコンテンツ・ストレージの実装と指定したスタイル/属性のストレージ・メカニズムを使用してHTMLドキュメントを構築します。 これは、コンストラクタHTMLDocument(Content, StyleSheet)
の簡易メソッドです。- パラメータ:
styles
- スタイル
-
HTMLDocument
public HTMLDocument(AbstractDocument.Content c, StyleSheet styles)指定されたコンテンツ・ストレージの実装と、指定されたスタイル/属性のストレージ・メカニズムとを使ってHTMLドキュメントを作成します。- パラメータ:
c
- コンテンツのコンテナstyles
- スタイル
-
-
メソッドの詳細
-
getReader
public HTMLEditorKit.ParserCallback getReader(int pos)パーサーがHTMLドキュメントをロードするときに使うリーダーを取得します。 このメソッドはHTMLDocument.HTMLReader
のインスタンスを返すために実装されます。 サブクラスは、必要であれば、このメソッドを再実装してドキュメントの構造化手段を変更できます。 (カスタム・タグや文字スタイル要素の構造的表現の処理などが目的です。)- パラメータ:
pos
- 開始位置- 戻り値:
- パーサーがドキュメントをロードするために使うリーダー
-
getReader
public HTMLEditorKit.ParserCallback getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag)パーサーがHTMLドキュメントをロードするために使うリーダーを返します。 このメソッドはHTMLDocument.HTMLReader
のインスタンスを返すために実装されます。 サブクラスは、必要であれば、このメソッドを再実装してドキュメントの構造化手段を変更できます。 (カスタム・タグや文字スタイル要素の構造的表現の処理などが目的です。)これは
getReader(int, int, int, HTML.Tag, TRUE)
の簡易メソッドです。- パラメータ:
pos
- 開始位置popDepth
- 挿入前に生成されるElementSpec.EndTagTypes
タグの数pushDepth
- 終了タグの生成後、挿入前に生成されるElementSpec.JoinNextDirection
の方向を持つElementSpec.StartTagTypes
タグの数insertTag
- ドキュメントへの挿入を開始する最初のタグ- 戻り値:
- パーサーがドキュメントをロードするために使うリーダー
-
getBase
public URL getBase()相対URLを解決処理する位置を返します。 デフォルトではこの位置は、ドキュメントがURLからロードされた場合にはドキュメントのURLになります。 ベース・タグが見つかり、解析できる場合には、それをベース位置として使用します。- 戻り値:
- ベース位置
-
setBase
public void setBase(URL u)相対URLを解決処理する位置を設定します。 デフォルトではこの位置は、ドキュメントがURLからロードされた場合にはドキュメントのURLになります。 ベース・タグが見つかり、解析できる場合には、それをベース位置として使用します。StyleSheet
のベースをu
とドキュメントのベースに設定します。- パラメータ:
u
- 該当するベースURL
-
insert
protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data) throws BadLocationException新しい要素を一括して挿入します。 要素はこのようにしてドキュメント内に作成されます。 解析によりどのような構造が必要であるかを決め、ドキュメントに書込みロックがかかっていない間に、編集を記述するトークンのセットとして仕様を作成します。 このメソッドは、リーダーによってまとめて呼び出されて、短時間の間(つまり、ドキュメントが実際に変更されている間)書込みロックを得ます。- オーバーライド:
insert
、クラス:DefaultStyledDocument
- パラメータ:
offset
- 開始オフセットdata
- 要素データ- 例外:
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合。
-
insertUpdate
protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)ドキュメント構造をテキスト挿入の結果で更新します。 これは、書込みロック内で発生します。 この実装は、挿入されたコンテンツを単に改行ごとに構文解析し、要素バッファに対する一連の指示を構築します。- オーバーライド:
insertUpdate
、クラス:DefaultStyledDocument
- パラメータ:
chng
- ドキュメント変更の説明attr
- 属性
-
create
protected void create(DefaultStyledDocument.ElementSpec[] data)ドキュメントのコンテンツを、指定された要素仕様に置換します。 このメソッドは、ロードがまとめて完了した場合、挿入の前に呼び出されます。 ドキュメント全体を一度にまとめてロードする場合に呼び出される、唯一のメソッドです。- オーバーライド:
create
、クラス:DefaultStyledDocument
- パラメータ:
data
- ドキュメントの新しいコンテンツ
-
setParagraphAttributes
public void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)段落に属性を設定します。このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。 詳細は、Swingでの並行性に関連しているサイトを参照してください。
- 定義:
setParagraphAttributes
、インタフェース:StyledDocument
- オーバーライド:
setParagraphAttributes
、クラス:DefaultStyledDocument
- パラメータ:
offset
- 段落に対するオフセット(最小でも0でなければならない)length
- 影響を受ける文字数(最小でも0でなければならない)s
- 属性replace
- 既存の属性を置換するか、マージするか
-
getStyleSheet
public StyleSheet getStyleSheet()HTMLドキュメント自体が指定するドキュメント固有の表示規則(CSS)を持つ、StyleSheet
を取得します。- 戻り値:
StyleSheet
-
getIterator
public HTMLDocument.Iterator getIterator(HTML.Tag t)指定したHTMLタグのイテレータを取得します。 包含されているアンカーのセットでの繰返し処理や、入力要素での繰返し処理などで使用されます。- パラメータ:
t
- 要求されたHTML.Tag
- 戻り値:
- 指定したHTMLタグの
Iterator
- 関連項目:
HTML.Tag
-
createLeafElement
protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)テキストを直接表す(子を持たない)ドキュメントの葉の要素を作成します。HTMLDocument.RunElement
型の要素を返すために実装されます。- オーバーライド:
createLeafElement
、クラス:AbstractDocument
- パラメータ:
parent
- 親要素a
- 要素の属性p0
- 範囲の始点(最小でも0でなければならない)p1
- 範囲の終点(最小でもp0でなければならない)- 戻り値:
- 新規要素
-
createBranchElement
protected Element createBranchElement(Element parent, AttributeSet a)ドキュメントの枝の要素を作成します。この要素には、ほかの要素(複数可)を含めることができます。 これは、HTMLDocument.BlockElement
型の要素を返すために実装されます。- オーバーライド:
createBranchElement
、クラス:AbstractDocument
- パラメータ:
parent
- 親要素a
- 属性- 戻り値:
- 要素
-
createDefaultRoot
protected AbstractDocument.AbstractElement createDefaultRoot()デフォルトのドキュメント構造を表すために使うルート要素を作成します。- オーバーライド:
createDefaultRoot
、クラス:DefaultStyledDocument
- 戻り値:
- 要素ベース
-
setTokenThreshold
public void setTokenThreshold(int n)ドキュメントの要素構造の更新前に、バッファに格納されるトークンの数を設定します。- パラメータ:
n
- バッファに格納されるトークンの数
-
getTokenThreshold
public int getTokenThreshold()ドキュメントの要素構造の更新前に、バッファに格納されるトークンの数を取得します。 デフォルト値はInteger.MAX_VALUE
です。- 戻り値:
- バッファされるトークンの数
-
setPreservesUnknownTags
public void setPreservesUnknownTags(boolean preservesTags)パーサーによる未知のタグの処理方法を判定します。 trueを設定すると未知のタグはモデルに入れられ、そうでない場合はモデルから外されます。- パラメータ:
preservesTags
- 未知のタグがモデルに保存される場合はtrue、そうでない場合、タグはモデルから外される- 関連項目:
HTML.Tag
-
getPreservesUnknownTags
public boolean getPreservesUnknownTags()未知のタグが見つかったときにパーサーの監視する動作を返します。- 戻り値:
- 解析時に未知のタグが残される場合はtrue
- 関連項目:
HTML.Tag
-
processHTMLFrameHyperlinkEvent
public void processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e)HTMLフレーム内でドキュメントによって生成されたHyperlinkEvents
の処理をします。HyperlinkEvent
タイプは、パラメータが示すとおり、HTMLFrameHyperlinkEvent
です。HyperlinkEvent
に含まれる通常の情報のほかに、このイベントはクリックが発生したフレーム(発生元の要素)に対応する要素、およびターゲット名を格納しています。 ターゲット名は次に示す4種類の値のどれかです。- _self
- _parent
- _top
- 名前の付いたフレーム
HTML.Attribute.SRC
属性の値を変更するアクションが発生し、ChangedUpdate
イベントをトリガーします。ターゲットが_parentの場合、<FRAMESET>要素である親要素を削除し、新しい<FRAME>要素を挿入したあと、
HTML.Attribute.SRC
属性が送信先のURLと等しい値を持つように設定してRemovedUpdate
およびInsertUpdate
をトリガーします。ターゲットが_topの場合、このメソッドは何も処理を行いません。 _topは、フレーム用のビューの実装(具体的には
FrameView
)で処理されます。 _topはドキュメント全体の置換えを意味するため、置換対象ドキュメントの外部で処理してください。ターゲットがフレーム名の場合、ターゲットと同じ名前の要素を要素階層から探し、その要素の
HTML.Attribute.SRC
属性を更新してChangedUpdate
イベントをトリガーします。- パラメータ:
e
- イベント
-
setParser
public void setParser(HTMLEditorKit.Parser parser)既存のドキュメントにsetInnerHTML
やsetOuterHTML
などのhtmlを挿入するときにメソッドが使用するパーサーを設定します。HTMLEditorKit.createDefaultDocument
はユーザーに代わってパーサーを設定します。 手動でHTMLDocument
ドキュメントを作成する場合は、それぞれに対応したパーサーを設定するようにしてください。- パラメータ:
parser
- テキストの挿入に使われるパーサー- 導入されたバージョン:
- 1.3
-
getParser
public HTMLEditorKit.Parser getParser()既存のドキュメントにhtmlを挿入するときに使用するパーサーを返します。- 戻り値:
- テキストの挿入に使われるパーサー
- 導入されたバージョン:
- 1.3
-
setInnerHTML
public void setInnerHTML(Element elem, String htmlText) throws BadLocationException, IOException指定された要素の子をHTML文字列として指定されたコンテンツと置き換えます。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
- 入出力例外が発生した場合- 導入されたバージョン:
- 1.3
-
setOuterHTML
public void setOuterHTML(Element elem, String htmlText) throws BadLocationException, IOException指定された親の要素をHTML文字列として指定されたコンテンツと置き換えます。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
- 入出力例外が発生した場合- 導入されたバージョン:
- 1.3
-
insertAfterStart
public void insertAfterStart(Element elem, String htmlText) throws BadLocationException, IOException要素の開始位置に文字列として指定されたHTMLを挿入します。次の構造を検討してください(
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
- 入出力例外が発生した場合- 導入されたバージョン:
- 1.3
-
insertBeforeEnd
public void insertBeforeEnd(Element elem, String htmlText) throws BadLocationException, IOException要素の終了位置に文字列として指定されたHTMLを挿入します。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
- 入出力例外が発生した場合- 導入されたバージョン:
- 1.3
-
insertBeforeStart
public void insertBeforeStart(Element elem, String htmlText) throws BadLocationException, IOException指定された要素が開始される前に文字列として指定されたHTMLを挿入します。次の構造を検討してください(
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
- 入出力例外が発生した場合- 導入されたバージョン:
- 1.3
-
insertAfterEnd
public void insertAfterEnd(Element elem, String htmlText) throws BadLocationException, IOException指定された要素の最後の後に文字列として指定されたHTMLを挿入します。次の構造を検討してください(
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
- 入出力例外が発生した場合- 導入されたバージョン:
- 1.3
-
getElement
指定したidAttribute
を持つ要素を返します。 要素が見つからない場合はnull
が返されます。 このメソッドはAttribute
に対して働き、文字タグに対しては働かないことに注意してください。 HTMLの簡単な例<a id="HelloThere">
において、属性は「id」、文字タグは「a」です。 これはgetElement(RootElement, HTML.Attribute.id, id)
の簡易メソッドです。 このメソッドはスレッドに対して安全ではありません。- パラメータ:
id
- 目的のAttribute
を表す文字列- 戻り値:
- 指定された
Attribute
を持つ要素。それが見つからない場合はnull
。または、id
がnull
の場合はnull
- 導入されたバージョン:
- 1.3
- 関連項目:
HTML.Attribute
-
getElement
属性(値value
を持つattribute
)を格納するe
の子要素を返します。見つからない場合はnull
を返します。 このメソッドはスレッドに対して安全ではありません。- パラメータ:
e
- 検索を開始するルート要素attribute
- 目的のAttribute
value
- 指定されたAttribute
の値- 戻り値:
- 指定された
Attribute
と指定されたvalue
を持つ要素。それが見つからない場合はnull
- 導入されたバージョン:
- 1.3
- 関連項目:
HTML.Attribute
-
fireChangedUpdate
protected void fireChangedUpdate(DocumentEvent e)このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベント・インスタンスは、fireメソッドに渡されるパラメータを使って簡単に生成されます。- オーバーライド:
fireChangedUpdate
、クラス:AbstractDocument
- パラメータ:
e
- イベント- 関連項目:
EventListenerList
-
fireUndoableEditUpdate
protected void fireUndoableEditUpdate(UndoableEditEvent e)このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベント・インスタンスは、fireメソッドに渡されるパラメータを使って簡単に生成されます。- オーバーライド:
fireUndoableEditUpdate
、クラス:AbstractDocument
- パラメータ:
e
- イベント- 関連項目:
EventListenerList
-