モジュール java.desktop
パッケージ javax.swing.text.html

クラスHTMLDocument

すべての実装されたインタフェース:
Serializable, Document, StyledDocument

public class HTMLDocument
extends DefaultStyledDocument
HTMLをモデル化するドキュメントです。 このモデルの目的は、ドキュメントのブラウズと編集の両方をサポートすることです。 このため、HTMLドキュメントによって記述された構造は、デフォルトでは正確にレプリケートされません。 デフォルトでモデル化される要素構造は、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コンテンツを既存のドキュメントに挿入できます。

次の例は、これらのメソッドの使用方法を示しています。 各例では、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メソッドを使用します。 たとえば、eDIV要素である場合、d.insertAfterStart(e, "<ul><li>List Item</li></ul>")は最初の段落の前にそのリストを挿入し、d.insertBeforeEnd(e, "<ul><li>List Item</li></ul>")は最後の段落のあとにそのリストを挿入します。 DIVブロックは、新しく挿入された要素の親になります。

いずれかの要素の前後に兄弟要素を挿入するには、insertBeforeStartおよびinsertAfterEndメソッドを使用します。 たとえば、eDIV要素である場合、d.insertBeforeStart(e, "<ul><li>List Item</li></ul>")DIV要素の前にそのリストを挿入し、d.insertAfterEnd(e, "<ul><li>List Item</li></ul>")DIV要素のあとにそのリストを挿入します。 新しく挿入された要素は、DIV要素の兄弟になります。

要素の置換

要素とそのすべての子孫を置換するには、setInnerHTMLおよびsetOuterHTMLメソッドを使用します。 たとえば、eDIV要素である場合、d.setInnerHTML(e, "<ul><li>List Item</li></ul>")はすべての子の段落をそのリストに置換し、d.setOuterHTML(e, "<ul><li>List Item</li></ul>")DIV要素自体を置換します。 後者の場合、そのリストの親はBODY要素になります。

サマリー

次の表に、前述のドキュメントの例と各種メソッドの結果を示します。

上記の例のHTMLコンテンツ
insertAfterStart insertBeforeEnd insertBeforeStart insertAfterEnd setInnerHTML setOuterHTML

Paragraph 1

Paragraph 2

  • List Item

Paragraph 1

Paragraph 2

Paragraph 1

Paragraph 2

  • List Item
  • List Item

Paragraph 1

Paragraph 2

Paragraph 1

Paragraph 2

  • List Item
  • List Item
  • List Item

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

  • フィールド詳細

    • AdditionalComments

      public static final String AdditionalComments
      ドキュメント・プロパティのキーの値です。 キーに対応する値は、StringのVectorになります。この文字列は、本文にはないコメントです。
      関連項目:
      定数フィールド値
  • コンストラクタの詳細

    • 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
      • 名前の付いたフレーム
      ターゲットが_selfの場合、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)
      既存のドキュメントにsetInnerHTMLsetOuterHTMLなどの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

      public Element getElement​(String id)
      指定したid Attributeを持つ要素を返します。 要素が見つからない場合はnullが返されます。 このメソッドはAttributeに対して働き、文字タグに対しては働かないことに注意してください。 HTMLの簡単な例<a id="HelloThere">において、属性は「id」、文字タグは「a」です。 これはgetElement(RootElement, HTML.Attribute.id, id)の簡易メソッドです。 このメソッドはスレッドに対して安全ではありません。
      パラメータ:
      id - 目的のAttributeを表す文字列
      戻り値:
      指定されたAttributeを持つ要素。それが見つからない場合はnull。または、idnullの場合はnull
      導入されたバージョン:
      1.3
      関連項目:
      HTML.Attribute
    • getElement

      public Element getElement​(Element e, Object attribute, Object value)
      属性(値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