- 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
HTMLEditorKit.HTMLFactory
HTML用のビューを作成するファクトリです。static class
HTMLEditorKit.HTMLTextAction
HTMLを既存のドキュメントに挿入するのに便利ないくつかの簡易メソッドを提供するabstractアクションです。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
タグ表示を設定するデフォルトの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
-
-
-
-
フィールドの詳細
-
DEFAULT_CSS
public static final String DEFAULT_CSS
タグ表示を設定するデフォルトのCascading Style Sheetファイルです。- 関連項目:
- 定数フィールド値
-
FONT_CHANGE_SMALLER
public static final String FONT_CHANGE_SMALLER
次サイズへのフォント縮小識別子です。- 関連項目:
- 定数フィールド値
-
LOGICAL_STYLE_ACTION
public static final String LOGICAL_STYLE_ACTION
論理スタイル選択処理識別子です。論理スタイルは引数として渡されます。- 関連項目:
- 定数フィールド値
-
-
メソッドの詳細
-
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の挿入位置のオフセットpopDepth
- 挿入の前に生成されるElementSpec.EndTagTypesタグの数html
- HTML文字列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
- StyleSheet
-
getStyleSheet
public StyleSheet getStyleSheet()
HTML要素の描画に使用されているスタイル・セットを返します。 デフォルトでは、DEFAULT_CSSで指定されるリソースがロードされ、すべてのHTMLEditorKitのインスタンスで共有されます。- 戻り値:
- 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(boolean)
-
setAutoFormSubmission
public void setAutoFormSubmission(boolean isAuto)
htmlフォームの送信が自動的に処理されるか、FormSubmitEvent
がトリガーされるだけかを示します。 デフォルトでは、trueに設定されます。- パラメータ:
isAuto
-true
、htmlフォームの提出が自動的に処理される場合。- 導入されたバージョン:
- 1.5
- 関連項目:
isAutoFormSubmission()
,FormSubmitEvent
-
clone
public Object clone()
編集キットのコピーを作成します。- オーバーライド:
clone
、クラスStyledEditorKit
- 戻り値:
- コピー
- 関連項目:
Cloneable
-
getParser
protected HTMLEditorKit.Parser getParser()
HTMLストリームの読込みに使用するパーサーを取得します。 これを実装し直して別のパーサーを提供できます。 デフォルトの実装は動的にロードされます。これは、デフォルトの実装が使用されない場合の、デフォルトのパーサーのロードによるオーバーヘッドを避けるためです。 デフォルトのパーサーは、HTML 3.2 DTDを使用するHotJavaパーサーです。- 戻り値:
- パーサー
-
getAccessibleContext
public AccessibleContext getAccessibleContext()
このエディタ・キットに関連付けられたAccessibleContextを返します- 定義:
getAccessibleContext
、インタフェースAccessible
- 戻り値:
- この編集キットに関連したAccessibleContext
- 導入されたバージョン:
- 1.4
-
-