JavaTM Platform
Standard Ed. 6

javax.swing.text.html
クラス HTMLEditorKit

java.lang.Object
  上位を拡張 javax.swing.text.EditorKit
      上位を拡張 javax.swing.text.DefaultEditorKit
          上位を拡張 javax.swing.text.StyledEditorKit
              上位を拡張 javax.swing.text.html.HTMLEditorKit
すべての実装されたインタフェース:
Serializable, Cloneable, Accessible

public class HTMLEditorKit
extends StyledEditorKit
implements Accessible

Swing の JEditorPane テキストコンポーネントは、EditorKit と呼ばれるプラグイン機構により、さまざまな種類のコンテンツをサポートしています。HTML は非常に一般的な形式なので、部分的なサポートをデフォルトで提供しています。このクラスが提供するデフォルトのサポートは、HTML 3.2 (一部の拡張を含む) をサポートしており、現在 4.0 のサポートに向けて移行中です。今のところ <applet> タグはサポートされていませんが、<object> タグの一部分はサポートされています。

HTML EditorKit はいくつかの目標を持って提供されており、これは HTML をモデル化する手法に反映されています。そうした目標が、クラスの設計に実質的な影響を与えています。

編集のサポート
JEditorPane のためのプラグインが、編集をサポートすべきということは明白ですが、編集をサポートするには設計上の考慮すべき問題がいくつかあります。HTML の規格に完全には準拠しない HTML ドキュメントがたくさん出回っているという事実があります。こうしたドキュメントを編集するには、なんらかの方法で正しい形式に正規化する必要があります。さらに、ユーザーは多量の構造編集を好まないという事実があります。 このため、HTML ドキュメントで定義されているとおりの HTML 構造ではなく、従来のテキスト編集の操作が好まれます。

HTML のモデル化は、HTMLDocument クラスで提供されています。HTML のモデル化については、HTMLDocument クラスの説明を参照してください。編集のサポートは、主に text パッケージで提供されます。

拡張可能/スケーラブル
このキットを無駄なく活用できるようにするために、キットを拡張可能にする努力が払われています。次にその内容の一部を示します。
  1. パーサーは置き換え可能です。デフォルトのパーサーは DTD に基づいた HotJava パーサーです。別の DTD を使ったり、まったく別のパーサーを使うこともできます。パーサーを変更するには、getParser メソッドを実装し直してください。デフォルトのパーサーは、最初の要求があったときに動的にロードされるため、別のパーサーを使用する場合はロードされません。デフォルトのパーサーは、このパッケージとは独立に、下位の parser パッケージにあります。
  2. パーサーは、HTMLDocument によって提供される PaserCallback を作動させます。コールバックを変更するには、HTMLDocument をサブクラス化し、別のリーダーを生成するドキュメントを返すように createDefaultDocument メソッドを実装し直してください。リーダーは、ドキュメントがどのように構造化されるかを制御します。Document は、デフォルトでは HTML サポートを提供しますが、HTML 以外のタグによって別の要素構造をサポートすることも可能です。
  3. そのモデルのデフォルトのビューは、View 実装の階層として提供されますので、特定の要素の表示方法をカスタマイズしたり、新しい View の実装を提供することで、新しい種類の要素に対する機能を容易に追加できます。デフォルトのビューのセットは、HTMLFactory クラスによって提供されます。ビューのセットを変更するには、HTMLFactory をサブクラス化または置き換えた上で、getViewFactory メソッドを実装し直して別のファクトリを返すようにします。
  4. View の実装は、主に、ビュー内に保持されている CSS 属性を使用して機能します。これにより、実質的に異なって見える同じモデルに複数のビューをマッピングすることが可能になります。これは、出力の際に特に便利です。HTML 属性の多くに関しては、表示用に HTML 属性が CSS 属性に変換されます。これは、View の実装を汎用的にするのに役立ちます。

非同期ロード
大きなドキュメントでは、大量の構文解析が必要になりロードに多少時間がかかります。デフォルトではこのキットは、JEditorPane.setPage を使ってロードする場合に非同期でロードされるドキュメントを作成します。これは、ドキュメントのプロパティーによって制御されます。createDefaultDocument メソッドをオーバーライドすれば、プロパティーを変更できます。作業のバッチは、HTMLDocument.HTMLReader クラスが行い、実際の作業は text パッケージの DefaultStyledDocument および AbstractDocument クラスが行います。

現在の Look & Feel からのカスタマイズ
HTML は、よく知られた表示機能を提供しますが、その表示特性は正確には指定されていません。Swing は、Look & Feel の実装にテーマ機構を持っています。この Look & Feel が、HTML ビューに表示特性を与えるようになっていれば便利です。たとえば、視力の弱い人が、通常よりコントラストが強くサイズの大きいフォントを使えるようになります。

この機能は、StyleSheet クラスによって提供されます。HTML の表現は、EditorKit の StyleSheet プロパティーの設定によって、自由に変えることができます。

データの損失なし
EditorKit はドキュメントを読み込んで保存する能力を持っています。一般にユーザーにとっては、読み込みと保存の操作の間にデータの損失がないことが望まれます。HTMLEditorKit のポリシーは、認識できなかったものや表示されないものもあとで書き出すときのためにメモリーに保存しておくことです。したがって、HTML ドキュメントのモデルでは、通常、ドキュメントの読み込み中に検出された情報はすべて格納されます。しかし、このポリシーは編集をサポートするためにある種の制約を受けます (不正確なドキュメントを正規化しなければならない場合など)。結局、ガイドラインとなる原則は、「情報は失われないように、しかし、より正確なモデルを作成するために、部分的な合成や並べ換えはありうる」ということになります。


入れ子のクラスの概要
static class HTMLEditorKit.HTMLFactory
          HTML 用のビューを作成するファクトリです。
static class HTMLEditorKit.HTMLTextAction
          HTML を既存のドキュメントに挿入するのに便利な簡易メソッドを提供する、abstract Action です。
static class HTMLEditorKit.InsertHTMLTextAction
          InsertHTMLTextAction は、既存の HTML ドキュメントに任意の HTML 文字列を挿入するために使用します。
static class HTMLEditorKit.LinkController
          関連するコンポーネントを監視し、必要に応じてハイパーリンクイベントを発生させるクラスです。
static class HTMLEditorKit.Parser
          パーサーがサポートするインタフェースです。
static class HTMLEditorKit.ParserCallback
          構文解析の結果が、これらのコールバックメソッドを呼び出します。
 
クラス javax.swing.text.StyledEditorKit から継承された入れ子のクラス/インタフェース
StyledEditorKit.AlignmentAction, StyledEditorKit.BoldAction, StyledEditorKit.FontFamilyAction, StyledEditorKit.FontSizeAction, StyledEditorKit.ForegroundAction, StyledEditorKit.ItalicAction, StyledEditorKit.StyledTextAction, StyledEditorKit.UnderlineAction
 
クラス javax.swing.text.DefaultEditorKit から継承された入れ子のクラス/インタフェース
DefaultEditorKit.BeepAction, DefaultEditorKit.CopyAction, DefaultEditorKit.CutAction, DefaultEditorKit.DefaultKeyTypedAction, DefaultEditorKit.InsertBreakAction, DefaultEditorKit.InsertContentAction, DefaultEditorKit.InsertTabAction, DefaultEditorKit.PasteAction
 
フィールドの概要
static String BOLD_ACTION
          ボールド処理識別子です。
static String COLOR_ACTION
          色選択処理識別子です。
static String DEFAULT_CSS
          タグ表示を設定するデフォルトの CSS (Cascading Style Sheet) ファイルです。
static String FONT_CHANGE_BIGGER
          次サイズへのフォント拡大識別子です。
static String FONT_CHANGE_SMALLER
          次サイズへのフォント縮小識別子です。
static String IMG_ALIGN_BOTTOM
          イメージを下端に揃えます。
static String IMG_ALIGN_MIDDLE
          イメージを中央に揃えます。
static String IMG_ALIGN_TOP
          イメージを上端に揃えます。
static String IMG_BORDER
          イメージを境界に揃えます。
static String ITALIC_ACTION
          イタリック処理識別子です。
static String LOGICAL_STYLE_ACTION
          論理スタイル選択処理識別子です。
static String PARA_INDENT_LEFT
          段落の左インデント処理識別子です。
static String PARA_INDENT_RIGHT
          段落の右インデント処理識別子です。
 
クラス javax.swing.text.DefaultEditorKit から継承されたフィールド
backwardAction, beepAction, beginAction, beginLineAction, beginParagraphAction, beginWordAction, copyAction, cutAction, defaultKeyTypedAction, deleteNextCharAction, deleteNextWordAction, deletePrevCharAction, deletePrevWordAction, downAction, endAction, endLineAction, EndOfLineStringProperty, endParagraphAction, endWordAction, forwardAction, insertBreakAction, insertContentAction, insertTabAction, nextWordAction, pageDownAction, pageUpAction, pasteAction, previousWordAction, readOnlyAction, selectAllAction, selectionBackwardAction, selectionBeginAction, selectionBeginLineAction, selectionBeginParagraphAction, selectionBeginWordAction, selectionDownAction, selectionEndAction, selectionEndLineAction, selectionEndParagraphAction, selectionEndWordAction, selectionForwardAction, selectionNextWordAction, selectionPreviousWordAction, selectionUpAction, selectLineAction, selectParagraphAction, selectWordAction, upAction, writableAction
 
コンストラクタの概要
HTMLEditorKit()
          HTMLEditorKit を構築し、StyleContext を作成して、スタイルシートをロードします。
 
メソッドの概要
 Object clone()
          編集キットのコピーを作成します。
 Document createDefaultDocument()
          この型のエディタに適している未初期化テキストストレージモデルを作成します。
protected  void createInputAttributes(Element element, MutableAttributeSet set)
          element の AttributeSet 内のキーと値のペアを set にコピーします。
 void deinstall(JEditorPane c)
          キットが JEditorPane から削除されているときに呼び出されます。
 AccessibleContext getAccessibleContext()
          この編集キットに関連した AccessibleContext を返します。
 Action[] getActions()
          エディタのコマンドリストを取り出します。
 String getContentType()
          このキットがサポートするデータの MIME タイプを返します。
 Cursor getDefaultCursor()
          デフォルトのカーソルを返します。
 MutableAttributeSet getInputAttributes()
          書式付き編集アクションに使用される入力属性を返します。
 Cursor getLinkCursor()
          ハイパーリンク上で使用するカーソルを設定します。
protected  HTMLEditorKit.Parser getParser()
          HTML ストリームの読み込みに使用するパーサーを取得します。
 StyleSheet getStyleSheet()
          HTML 要素の描画に使用されているスタイルセットを返します。
 ViewFactory getViewFactory()
          このキットが作成した任意のモデルのビューを作成するのに適したファクトリを取得します。
 void insertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag)
          既存のドキュメントに HTML を挿入します。
 void install(JEditorPane c)
          キットが JEditorPane にインストールされるときに呼び出されます。
 boolean isAutoFormSubmission()
          html フォームの送信が自動的に処理されるか、FormSubmitEvent がトリガーされるだけかを示します。
 void read(Reader in, Document doc, int pos)
          指定されたストリームからコンテンツを挿入します。
 void setAutoFormSubmission(boolean isAuto)
          html フォームの送信が自動的に処理されるか、FormSubmitEvent がトリガーされるだけかを示します。
 void setDefaultCursor(Cursor cursor)
          デフォルトのカーソルを設定します。
 void setLinkCursor(Cursor cursor)
          リンク上で使用するカーソルを設定します。
 void setStyleSheet(StyleSheet s)
          各種の HTML 要素の描画に使用されるスタイルセットを設定します。
 void write(Writer out, Document doc, int pos, int len)
          このタイプのコンテンツハンドラに適した形式で、ドキュメントからストリームへコンテンツを書き込みます。
 
クラス javax.swing.text.StyledEditorKit から継承されたメソッド
getCharacterAttributeRun
 
クラス javax.swing.text.DefaultEditorKit から継承されたメソッド
createCaret, read, write
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DEFAULT_CSS

public static final String DEFAULT_CSS
タグ表示を設定するデフォルトの CSS (Cascading Style Sheet) ファイルです。

関連項目:
定数フィールド値

BOLD_ACTION

public static final String BOLD_ACTION
ボールド処理識別子です。

関連項目:
定数フィールド値

ITALIC_ACTION

public static final String ITALIC_ACTION
イタリック処理識別子です。

関連項目:
定数フィールド値

PARA_INDENT_LEFT

public static final String PARA_INDENT_LEFT
段落の左インデント処理識別子です。

関連項目:
定数フィールド値

PARA_INDENT_RIGHT

public static final String PARA_INDENT_RIGHT
段落の右インデント処理識別子です。

関連項目:
定数フィールド値

FONT_CHANGE_BIGGER

public static final String FONT_CHANGE_BIGGER
次サイズへのフォント拡大識別子です。

関連項目:
定数フィールド値

FONT_CHANGE_SMALLER

public static final String FONT_CHANGE_SMALLER
次サイズへのフォント縮小識別子です。

関連項目:
定数フィールド値

COLOR_ACTION

public static final String COLOR_ACTION
色選択処理識別子です。色は引数として渡されます。

関連項目:
定数フィールド値

LOGICAL_STYLE_ACTION

public static final String LOGICAL_STYLE_ACTION
論理スタイル選択処理識別子です。論理スタイルは引数として渡されます。

関連項目:
定数フィールド値

IMG_ALIGN_TOP

public static final String IMG_ALIGN_TOP
イメージを上端に揃えます。

関連項目:
定数フィールド値

IMG_ALIGN_MIDDLE

public static final String IMG_ALIGN_MIDDLE
イメージを中央に揃えます。

関連項目:
定数フィールド値

IMG_ALIGN_BOTTOM

public static final String IMG_ALIGN_BOTTOM
イメージを下端に揃えます。

関連項目:
定数フィールド値

IMG_BORDER

public static final String IMG_BORDER
イメージを境界に揃えます。

関連項目:
定数フィールド値
コンストラクタの詳細

HTMLEditorKit

public HTMLEditorKit()
HTMLEditorKit を構築し、StyleContext を作成して、スタイルシートをロードします。

メソッドの詳細

getContentType

public String getContentType()
このキットがサポートするデータの MIME タイプを返します。このキットは text/html のタイプをサポートします。

オーバーライド:
クラス DefaultEditorKit 内の getContentType
戻り値:
タイプ

getViewFactory

public ViewFactory getViewFactory()
このキットが作成した任意のモデルのビューを作成するのに適したファクトリを取得します。

オーバーライド:
クラス StyledEditorKit 内の getViewFactory
戻り値:
ファクトリ

createDefaultDocument

public Document createDefaultDocument()
この型のエディタに適している未初期化テキストストレージモデルを作成します。

オーバーライド:
クラス StyledEditorKit 内の createDefaultDocument
戻り値:
モデル

read

public void read(Reader in,
                 Document doc,
                 int pos)
          throws IOException,
                 BadLocationException
指定されたストリームからコンテンツを挿入します。doc が HTMLDocument のインスタンスである場合、HTML 3.2 テキストを読み込みます。空でないドキュメントへの HTML の挿入は、本体要素内部で行う必要があります。 本体に挿入しない場合、例外がスローされます。空でないドキュメントへ挿入する場合、本体外部のタグ (ヘッド、タイトル) はすべて削除されます。

オーバーライド:
クラス DefaultEditorKit 内の read
パラメータ:
in - 読み込み元のストリーム
doc - 挿入先
pos - コンテンツを配置する ドキュメント内の位置
例外:
IOException - 入出力エラーが発生した場合
BadLocationException - pos がドキュメント内の 無効な位置を表す場合
RuntimeException - pos が無効な場合 (結果的に BadLocationException になる)

insertHTML

public void insertHTML(HTMLDocument doc,
                       int offset,
                       String html,
                       int popDepth,
                       int pushDepth,
                       HTML.Tag insertTag)
                throws BadLocationException,
                       IOException
既存のドキュメントに HTML を挿入します。

パラメータ:
doc - 挿入先のドキュメント
offset - HTML の挿入位置のオフセット
popDepth - 挿入の前に生成される ElementSpec.EndTagType タグの数
pushDepth - 終了タグの生成後、挿入前に生成される ElementSpec.JoinNextDirection の方向を持つ ElementSpec.StartTagType のタグの数
insertTag - ドキュメントへの挿入を開始する最初のタグ
例外:
RuntimeException - pos が無効な場合 (結果的に BadLocationException になる)
BadLocationException
IOException

write

public void write(Writer out,
                  Document doc,
                  int pos,
                  int len)
           throws IOException,
                  BadLocationException
このタイプのコンテンツハンドラに適した形式で、ドキュメントからストリームへコンテンツを書き込みます。

オーバーライド:
クラス DefaultEditorKit 内の write
パラメータ:
out - 書き込み先のストリーム
doc - 書き込み元
pos - コンテンツを取得する ドキュメント内の位置
len - 書き出す量
例外:
IOException - 入出力エラーが発生した場合
BadLocationException - pos がドキュメント内の 無効な位置を表す場合

install

public void install(JEditorPane c)
キットが JEditorPane にインストールされるときに呼び出されます。

オーバーライド:
クラス StyledEditorKit 内の install
パラメータ:
c - JEditorPane

deinstall

public void deinstall(JEditorPane c)
キットが JEditorPane から削除されているときに呼び出されます。このメソッドは、追加されたリスナーの登録を解除するために使用されます。

オーバーライド:
クラス StyledEditorKit 内の deinstall
パラメータ:
c - JEditorPane

setStyleSheet

public void setStyleSheet(StyleSheet s)
各種の HTML 要素の描画に使用されるスタイルセットを設定します。これらのスタイルは CSS 仕様に基づいて指定されます。キットで作成される各ドキュメントには、ドキュメント専用のスタイルを登録できるシートのコピーが添付されます。デフォルトでは、指定される StyleSheet はすべての HTMLEditorKit のインスタンスが共有します。必要に応じて、このメソッドを実装し直してより詳細な設定を行います。


getStyleSheet

public StyleSheet getStyleSheet()
HTML 要素の描画に使用されているスタイルセットを返します。デフォルトでは、DEFAULT_CSS で指定されるリソースがロードされ、すべての HTMLEditorKit のインスタンスで共有されます。


getActions

public Action[] getActions()
エディタのコマンドリストを取り出します。これは、書式処理のためにローカルで定義されたコマンドのコレクションによって追加されたスーパークラスによってサポートされるコマンドのリストです。

オーバーライド:
クラス StyledEditorKit 内の getActions
戻り値:
コマンドリスト

createInputAttributes

protected void createInputAttributes(Element element,
                                     MutableAttributeSet set)
element の AttributeSet 内のキーと値のペアを set にコピーします。このメソッドは、コンポーネント、アイコン、要素名の各属性はコピーしません。サブクラスでは、どの属性をコピーしてどの属性をコピーしないかを変更することもできます。ただし、最初に set 内のすべての属性を必ず削除してください。

このメソッドは、キャレットが別の位置に移動するたびに呼び出されます。

オーバーライド:
クラス StyledEditorKit 内の createInputAttributes

getInputAttributes

public MutableAttributeSet getInputAttributes()
書式付き編集アクションに使用される入力属性を返します。

オーバーライド:
クラス StyledEditorKit 内の getInputAttributes
戻り値:
属性セット

setDefaultCursor

public void setDefaultCursor(Cursor cursor)
デフォルトのカーソルを設定します。

導入されたバージョン:
1.3

getDefaultCursor

public Cursor getDefaultCursor()
デフォルトのカーソルを返します。

導入されたバージョン:
1.3

setLinkCursor

public void setLinkCursor(Cursor cursor)
リンク上で使用するカーソルを設定します。

導入されたバージョン:
1.3

getLinkCursor

public Cursor getLinkCursor()
ハイパーリンク上で使用するカーソルを設定します。

導入されたバージョン:
1.3

isAutoFormSubmission

public boolean isAutoFormSubmission()
html フォームの送信が自動的に処理されるか、FormSubmitEvent がトリガーされるだけかを示します。

戻り値:
html フォームの送信が自動的に処理される場合は true、 そうでない場合は false
導入されたバージョン:
1.5
関連項目:
setAutoFormSubmission(boolean)

setAutoFormSubmission

public void setAutoFormSubmission(boolean isAuto)
html フォームの送信が自動的に処理されるか、FormSubmitEvent がトリガーされるだけかを示します。デフォルトでは、true に設定されます。

導入されたバージョン:
1.5
関連項目:
isAutoFormSubmission, FormSubmitEvent

clone

public Object clone()
編集キットのコピーを作成します。

オーバーライド:
クラス StyledEditorKit 内の clone
戻り値:
コピー
関連項目:
Cloneable

getParser

protected HTMLEditorKit.Parser getParser()
HTML ストリームの読み込みに使用するパーサーを取得します。このメソッドを実装し直して別のパーサーを提供することができます。デフォルトの実装は動的にロードされます。 これは、デフォルトの実装が使用されない場合の、デフォルトのパーサーのロードによるオーバーヘッドを避けるためです。デフォルトのパーサーは、HTML 3.2 DTD を使用する HotJava です。


getAccessibleContext

public AccessibleContext getAccessibleContext()
この編集キットに関連した AccessibleContext を返します。

定義:
インタフェース Accessible 内の getAccessibleContext
戻り値:
この編集キットに関連した AccessibleContext
導入されたバージョン:
1.4

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。