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のモデル化については、そのドキュメントに詳しく記載されています。 編集のサポートは、主にtextパッケージで提供されます。 - 拡張可能/スケーラブル
-
このキットを無駄なく活用できるようにするために、キットを拡張可能にする努力が払われています。 次にその内容の一部を示します。
- パーサーは置換え可能です。 デフォルトのパーサーはDTDに基づいたHotJavaパーサーです。 別のDTDを使ったり、まったく別のパーサーを使うこともできます。 パーサーを変更するには、getParserメソッドを実装し直してください。 デフォルトのパーサーは、最初の要求があったときに動的にロードされるため、別のパーサーを使用する場合はロードされません。 デフォルトのパーサーは、このパッケージとは独立に、下位のparserパッケージにあります。
- パーサーは、HTMLDocumentによって提供されるParserCallbackを作動させます。 コールバックを変更するには、HTMLDocumentをサブクラス化し、別のリーダーを生成するドキュメントを返すようにcreateDefaultDocumentメソッドを実装し直してください。 リーダーは、ドキュメントがどのように構造化されるかを制御します。 Documentは、デフォルトではHTMLサポートを提供しますが、HTML以外のタグによって別の要素構造をサポートすることも可能です。
-
そのモデルのデフォルトのビューは、View実装の階層として提供されますので、特定の要素の表示方法をカスタマイズしたり、新しいViewの実装を提供することで、新しい種類の要素に対する機能を容易に追加できます。 デフォルトのビューのセットは、
HTMLFactory
クラスによって提供されます。 ビューのセットを変更するには、HTMLFactoryをサブクラス化または置き換えた上で、getViewFactoryメソッドを実装し直して別のファクトリを返すようにします。 - Viewの実装は、主に、ビュー内に保持されているCSS属性を使用して機能します。 これにより、実質的に異なって見える同じモデルに複数のビューをマッピングすることが可能になります。 これは、出力の際に特に便利です。 HTML属性の多くに関しては、表示用にHTML属性がCSS属性に変換されます。 これは、Viewの実装を汎用的にするのに役立ちます。
- 非同期ロード
-
大きなドキュメントでは、大量の構文解析が必要になりロードに多少時間がかかります。 デフォルトでは、このキットは
JEditorPane.setPage
を使ってロードする場合に非同期でロードされるドキュメントを生成します。 これは、ドキュメントのプロパティによって制御されます。 これを変更するには、メソッドcreateDefaultDocument
をオーバーライドできます。 作業のバッチ処理は、HTMLDocument.HTMLReader
クラスによって行われます。 実際の作業は、textパッケージ内のDefaultStyledDocument
およびAbstractDocument
クラスによって行われます。 - 現在のLAFからのカスタマイズ
-
HTMLは、よく知られた表示機能を提供しますが、その表示特性は正確には指定されていません。 Swingは、Look & Feelの実装にテーマ・メカニズムを持っています。 このLook & Feelが、HTMLビューに表示特性を与えるようになっていれば便利です。 たとえば、視力の弱い人が、通常よりコントラストが強くサイズの大きいフォントを使えるようになります。
この機能のサポートは、
StyleSheet
クラスによって提供されます。 HTMLの表現は、EditorKitのStyleSheetプロパティの設定によって、自由に変えることができます。 - データの損失なし
- EditorKitはドキュメントを読み込んで保存する能力を持っています。 一般にユーザーにとっては、読み込みと保存の操作の間にデータの損失がないことが望まれます。 HTMLEditorKitのポリシーは、認識できなかったものや表示されないものもあとで書き出すときのためにメモリーに保存しておくことです。 したがって、HTMLドキュメントのモデルでは、通常、ドキュメントの読込み中に検出された情報はすべて格納されます。 しかし、このポリシーは編集をサポートするためにある種の制約を受けます(不正確なドキュメントを正規化しなければならない場合など)。 結局、ガイドラインとなる原則は、「情報は失われないように、しかし、より正確なモデルを作成するために、部分的な合成や並べ換えはありうる」ということになります。
-
ネストされたクラスのサマリー
修飾子と型クラス説明static class
HTML用のビューを作成するファクトリです。static class
HTMLを既存のドキュメントに挿入するのに便利ないくつかの簡易メソッドを提供するabstractアクションです。static class
InsertHTMLTextActionは、既存のHTMLドキュメントに任意のHTML文字列を挿入するために使用できます。static class
関連付けられたコンポーネントを監視し、必要に応じてその上でハイパーリンク・イベントを発生させるクラスです。static class
パーサーがサポートするインタフェースです。static class
構文解析の結果が、これらのコールバック・メソッドを呼び出します。クラス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 final String
ボールド処理識別子です。static final String
色選択処理識別子です。色は引数として渡されます。static final String
タグ表示を設定するデフォルトのCascading Style Sheetファイルです。static final String
次サイズへのフォント拡大識別子です。static final String
次サイズへのフォント縮小識別子です。static final String
イメージを下端にそろえます。static final String
イメージを中央にそろえます。static final String
イメージを上端にそろえます。static final String
イメージを境界にそろえます。static final String
イタリック処理識別子です。static final String
論理スタイル選択処理識別子です。論理スタイルは引数として渡されます。static final String
段落の左インデント処理識別子です。static final String
段落の右インデント処理識別子です。クラスjavax.swing.text.DefaultEditorKitで宣言されたフィールド
backwardAction, beepAction, beginAction, beginLineAction, beginLineUpAction, beginParagraphAction, beginWordAction, copyAction, cutAction, defaultKeyTypedAction, deleteNextCharAction, deleteNextWordAction, deletePrevCharAction, deletePrevWordAction, downAction, endAction, endLineAction, endLineDownAction, 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
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明clone()
編集キットのコピーを作成します。この型のエディタに適している未初期化テキスト・ストレージ・モデルを作成します。protected void
createInputAttributes
(Element element, MutableAttributeSet set) element
のAttributeSet内のキーと値のペアをset
にコピーします。void
キットがJEditorPaneから削除されているときに呼び出されます。このエディタ・キットに関連付けられたAccessibleContextを返しますAction[]
エディタのコマンド・リストを取り出します。このキットがサポートするデータのMIMEタイプを返します。デフォルトのカーソルを返します。書式付き編集アクションに使用される入力属性を返します。ハイパーリンク上で使用するカーソルを返します。protected HTMLEditorKit.Parser
HTMLストリームの読込みに使用するパーサーを取得します。HTML要素の描画に使用されているスタイル・セットを返します。このキットが作成した任意のモデルのビューを作成するのに適したファクトリを取得します。void
insertHTML
(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag) 既存のドキュメントにHTMLを挿入します。void
キットがJEditorPaneにインストールされるときに呼び出されます。boolean
htmlフォームの送信が自動的に処理されるか、FormSubmitEvent
がトリガーされるだけかを示します。void
指定されたストリームからコンテンツを挿入します。void
setAutoFormSubmission
(boolean isAuto) htmlフォームの送信が自動的に処理されるか、FormSubmitEvent
がトリガーされるだけかを示します。void
setDefaultCursor
(Cursor cursor) デフォルトのカーソルを設定します。void
setLinkCursor
(Cursor cursor) リンク上で使用するカーソルを設定します。void
各種のHTML要素の描画に使用されるスタイル・セットを設定します。void
このタイプのコンテンツ・ハンドラに適した形式で、ドキュメントからストリームへコンテンツを書き込みます。クラスjavax.swing.text.StyledEditorKitで宣言されたメソッド
getCharacterAttributeRun
クラスjavax.swing.text.DefaultEditorKitで宣言されたメソッド
createCaret, read, write
-
フィールド詳細
-
DEFAULT_CSS
public static final String DEFAULT_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
タイプをサポートします。- オーバーライド:
getContentType
、クラスDefaultEditorKit
- 戻り値:
- タイプ
-
getViewFactory
public ViewFactory getViewFactory()このキットが作成した任意のモデルのビューを作成するのに適したファクトリを取得します。- オーバーライド:
getViewFactory
、クラスStyledEditorKit
- 戻り値:
- ファクトリ
-
createDefaultDocument
public Document createDefaultDocument()この型のエディタに適している未初期化テキスト・ストレージ・モデルを作成します。- オーバーライド:
createDefaultDocument
、クラスStyledEditorKit
- 戻り値:
- モデル
-
read
public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException 指定されたストリームからコンテンツを挿入します。doc
がHTMLDocumentのインスタンスである場合は、HTML 3.2テキストが読み取られます。 空でないドキュメントへのHTMLの挿入は、body要素の内側にする必要があります。本文に挿入しない場合、例外がスローされます。 空でないドキュメントへの挿入時は、bodyの外側のタグ(head、title)がすべて削除されます。- オーバーライド:
read
、クラスDefaultEditorKit
- パラメータ:
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の挿入位置のオフセットhtml
- HTML文字列popDepth
- 挿入の前に生成されるElementSpec.EndTagTypesタグの数pushDepth
- 終了タグの生成後、挿入前に生成されるElementSpec.JoinNextDirectionの方向を持つElementSpec.StartTagTypeタグの数insertTag
- ドキュメントへの挿入を開始する最初のタグ- 例外:
BadLocationException
-offset
が無効な場合IOException
- I/OエラーRuntimeException
- posが無効な場合(結果的にBadLocationExceptionになる)
-
write
public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException このタイプのコンテンツ・ハンドラに適した形式で、ドキュメントからストリームへコンテンツを書き込みます。- オーバーライド:
write
、クラスDefaultEditorKit
- パラメータ:
out
- 書込み先のストリームdoc
- 書込み元pos
- コンテンツを取得するドキュメント内の位置len
- 書き出す量- 例外:
IOException
- 入出力エラーが発生した場合BadLocationException
-pos
がドキュメント内の無効なロケーションを表す場合
-
install
public void install(JEditorPane c) キットがJEditorPaneにインストールされるときに呼び出されます。- オーバーライド:
install
、クラスStyledEditorKit
- パラメータ:
c
- JEditorPane
-
deinstall
public void deinstall(JEditorPane c) キットがJEditorPaneから削除されているときに呼び出されます。 このメソッドは、追加されたリスナーの登録を解除するために使用されます。- オーバーライド:
deinstall
、クラスStyledEditorKit
- パラメータ:
c
- JEditorPane
-
setStyleSheet
public void setStyleSheet(StyleSheet s) 各種のHTML要素の描画に使用されるスタイル・セットを設定します。 これらのスタイルはCSS仕様に基づいて指定されます。 キットで作成される各ドキュメントには、ドキュメント専用のスタイルを登録できるシートのコピーが添付されます。 デフォルトでは、指定されるStyleSheetはすべてのHTMLEditorKitのインスタンスが共有します。 必要に応じて、このメソッドを実装し直してより詳細な設定を行います。- パラメータ:
s
- a StyleSheet
-
getStyleSheet
public StyleSheet getStyleSheet()HTML要素の描画に使用されているスタイル・セットを返します。 デフォルトでは、DEFAULT_CSSで指定されるリソースがロードされ、すべてのHTMLEditorKitのインスタンスで共有されます。- 戻り値:
- the StyleSheet
-
getActions
public Action[] getActions()エディタのコマンド・リストを取り出します。 これは、書式処理のためにローカルで定義されたコマンドのコレクションによって追加されたスーパー・クラスによってサポートされるコマンドのリストです。- オーバーライド:
getActions
、クラスStyledEditorKit
- 戻り値:
- コマンド・リスト
-
createInputAttributes
protected void createInputAttributes(Element element, MutableAttributeSet set) element
のAttributeSet内のキーと値のペアをset
にコピーします。 このメソッドは、コンポーネント、アイコン、要素名の各属性はコピーしません。 サブクラスでは、どの属性をコピーしてどの属性をコピーしないかを変更することもできます。 ただし、最初にset
内のすべての属性を必ず削除してください。このメソッドは、キャレットが別の位置に移動するたびに呼び出されます。
- オーバーライド:
createInputAttributes
、クラスStyledEditorKit
- パラメータ:
element
- 要素set
- 属性
-
getInputAttributes
public MutableAttributeSet getInputAttributes()書式付き編集アクションに使用される入力属性を返します。- オーバーライド:
getInputAttributes
、クラスStyledEditorKit
- 戻り値:
- 属性セット
-
setDefaultCursor
public void setDefaultCursor(Cursor cursor) デフォルトのカーソルを設定します。- パラメータ:
cursor
- カーソル- 導入されたバージョン:
- 1.3
-
getDefaultCursor
public Cursor getDefaultCursor()デフォルトのカーソルを返します。- 戻り値:
- カーソル
- 導入されたバージョン:
- 1.3
-
setLinkCursor
public void setLinkCursor(Cursor cursor) リンク上で使用するカーソルを設定します。- パラメータ:
cursor
- カーソル- 導入されたバージョン:
- 1.3
-
getLinkCursor
public Cursor getLinkCursor()ハイパーリンク上で使用するカーソルを返します。- 戻り値:
- カーソル
- 導入されたバージョン:
- 1.3
-
isAutoFormSubmission
public boolean isAutoFormSubmission()htmlフォームの送信が自動的に処理されるか、FormSubmitEvent
がトリガーされるだけかを示します。- 戻り値:
- htmlフォームの送信が自動的に処理される場合はtrue、そうでない場合はfalse。
- 導入されたバージョン:
- 1.5
- 関連項目:
-
setAutoFormSubmission
public void setAutoFormSubmission(boolean isAuto) htmlフォームの送信が自動的に処理されるか、FormSubmitEvent
がトリガーされるだけかを示します。 デフォルトでは、trueに設定されます。- パラメータ:
isAuto
-true
の場合、HTMLフォームの送信は自動的に処理されます。- 導入されたバージョン:
- 1.5
- 関連項目:
-
clone
public Object clone()編集キットのコピーを作成します。- オーバーライド:
clone
、クラスStyledEditorKit
- 戻り値:
- コピー
- 関連項目:
-
getParser
protected HTMLEditorKit.Parser getParser()HTMLストリームの読込みに使用するパーサーを取得します。 これを実装し直して別のパーサーを提供できます。 デフォルトの実装は動的にロードされます。これは、デフォルトの実装が使用されない場合の、デフォルトのパーサーのロードによるオーバーヘッドを避けるためです。 デフォルトのパーサーは、HTML 3.2 DTDを使用するHotJavaパーサーです。- 戻り値:
- パーサー
-
getAccessibleContext
public AccessibleContext getAccessibleContext()このエディタ・キットに関連付けられたAccessibleContextを返します- 定義:
getAccessibleContext
、インタフェースAccessible
- 戻り値:
- この編集キットに関連したAccessibleContext
- 導入されたバージョン:
- 1.4
-