|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.text.JTextComponent | +--javax.swing.JEditorPane
さまざまな種類のコンテンツを編集するためのテキストコンポーネントです。このコンポーネントは EditorKit の実装を使用して動作します。指定されたコンテンツの種類に対応して適切な種類のテキストエディタになります。ある時点でエディタに設定されるコンテンツタイプは、現在インストールされている EditorKit によって決まります。コンテンツが新しい URL に設定された場合、そのタイプを使って、そのコンテンツをロードするのにどの EditorKit を使用する必要があるかが判定されます。
デフォルトでは、次のコンテンツタイプに対応しています。
javax.swing.text.html.HTMLEditorKit
クラスです。
javax.swing.text.rtf.RTFEditorKit
クラスです。
このコンポーネントには、次のような方法でコンテンツをロードできます。
標準の Look & Feel (L&F) 表現でこのコンポーネントが使用するキーボードのキーについては、JEditorPane のキーの割り当てを参照してください。
コンテンツによっては、ハイパーリンクイベントを生成することによってハイパーリンクのサポートを提供します。HTML EditorKit は、JEditorPane が編集可能ではない場合、つまり JEditorPane.setEditable(false);
が呼び出されている場合にハイパーリンクイベントを生成します。ドキュメントに HTML フレームが埋め込まれている場合、通常は現在のドキュメントの一部が変更されます。次の部分的なコードは、ハイパーリンクリスナーの実装例です。このコードの場合、HTML フレームイベントには特別な処理を行い、ほかのすべてのアクティブなハイパーリンクは単に表示されるだけです。
class Hyperactive implements HyperlinkListener {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane pane = (JEditorPane) e.getSource();
if (e instanceof HTMLFrameHyperlinkEvent) {
HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent)e;
HTMLDocument doc = (HTMLDocument)pane.getDocument();
doc.processHTMLFrameHyperlinkEvent(evt);
} else {
try {
pane.setPage(e.getURL());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
}
ドキュメント内の文化に依存する情報は、文字エンコーディングと呼ばれる機構によって扱われます。文字エンコーディングとは、文字セットの構成要素 (文字、表意文字、数字、記号、制御文字) と特定の数値コードの曖昧さを含まない対応付けであり、ファイルへの保存方法を表します。文字エンコーディングには、ISO-8859-1、ISO-8859-5、Shift-jis、Euc-jp、UTF-8 などがあります。ファイルは、ユーザエージェント (JEditorPane) に渡されるときに、ドキュメントの文字セット (ISO-10646、別名 Unicode) に変換されます。
JEditorPane で使われる文字セットを指定する方法は複数あります。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。
内部クラスの概要 | |
protected class |
JEditorPane.AccessibleJEditorPane
このオブジェクトのユーザ補助機能を取得するために使用されるクラスです。 |
protected class |
JEditorPane.AccessibleJEditorPaneHTML
このクラスは AccessibleHypertext をサポートします。 |
protected class |
JEditorPane.JEditorPaneAccessibleHypertextSupport
AccessibleJEditorPaneHTML.getAccessibleText() によって返されます。 |
クラス javax.swing.text.JTextComponent から継承した内部クラス |
JTextComponent.AccessibleJTextComponent,
JTextComponent.KeyBinding |
クラス javax.swing.JComponent から継承した内部クラス |
JComponent.AccessibleJComponent |
クラス javax.swing.text.JTextComponent から継承したフィールド |
DEFAULT_KEYMAP,
FOCUS_ACCELERATOR_KEY |
クラス javax.swing.JComponent から継承したフィールド |
accessibleContext,
listenerList,
TOOL_TIP_TEXT_KEY,
ui,
UNDEFINED_CONDITION,
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT,
WHEN_FOCUSED,
WHEN_IN_FOCUSED_WINDOW |
クラス java.awt.Component から継承したフィールド |
BOTTOM_ALIGNMENT,
CENTER_ALIGNMENT,
LEFT_ALIGNMENT,
RIGHT_ALIGNMENT,
TOP_ALIGNMENT |
コンストラクタの概要 | |
JEditorPane()
新しい JEditorPane を構築します。 |
|
JEditorPane(String url)
URL 指定を示す文字列を基にして、JEditorPane を作成します。 |
|
JEditorPane(String type,
String text)
指定されたテキストに初期化されている JEditorPane を作成します。 |
|
JEditorPane(URL initialPage)
入力のために指定された URL を基にして、JEditorPane を作成します。 |
メソッドの概要 | |
void |
addHyperlinkListener(HyperlinkListener listener)
変更の通知のためにハイパーリンクリスナーを追加します。 |
protected EditorKit |
createDefaultEditorKit()
コンポーネントが初めて作成されたときに、デフォルトのエディタキット (PlainEditorKit) を作成します。 |
static EditorKit |
createEditorKitForContentType(String type)
デフォルトのエディタキットのレジストリから、指定されたコンテンツタイプのハンドラを作成します。 |
void |
fireHyperlinkUpdate(HyperlinkEvent e)
このタイプのイベントの通知を、登録してあるすべてのリスナーに通知します。 |
AccessibleContext |
getAccessibleContext()
この JEditorPane に関連付けられている AccessibleContext を取得します。 |
String |
getContentType()
このエディタが処理するように現在設定されているコンテンツタイプを取得します。 |
EditorKit |
getEditorKit()
コンテンツの処理のために現在インストールされているキットを取得します。 |
EditorKit |
getEditorKitForContentType(String type)
指定されたコンテンツタイプで使用するエディタキットを取得します。 |
URL |
getPage()
表示されている現在の URL を取得します。 |
Dimension |
getPreferredSize()
JEditorPane の適切なサイズは、スーパークラスの適切なサイズと少し異なります。 |
boolean |
getScrollableTracksViewportHeight()
この Scrollable の高さが必ずビューポートの高さと一致することをビューポートが強制する場合に true を返します。 |
boolean |
getScrollableTracksViewportWidth()
ビューポートに常にこの Scrollable の幅をビューポートの幅と一致させる場合に true を返します。 |
protected InputStream |
getStream(URL page)
setPage メソッドによるロードと間連する、指定された URL のストリームを取得します。 |
String |
getText()
この TextComponent に格納されているテキストをこのエディタのコンテンツタイプで返します。 |
String |
getUIClassID()
UI のクラス ID を取得します。 |
boolean |
isManagingFocus()
フォーカスを取得後、タブトラバーサルをオフにします。 |
protected String |
paramString()
この JEditorPane の文字列表現を返します。 |
protected void |
processComponentKeyEvent(KeyEvent e)
AWT がフォーカスのトラバーサルを行わないように、TAB イベントおよび Shift+TAB イベントを処理します。 |
void |
read(InputStream in,
Object desc)
このメソッドは、ストリームから初期化を行います。 |
static void |
registerEditorKitForContentType(String type,
String classname)
コンテンツタイプと名前のデフォルトの対応付けを作成します。 |
static void |
registerEditorKitForContentType(String type,
String classname,
ClassLoader loader)
コンテンツタイプと名前のデフォルトのバインディングを作成します。 |
void |
removeHyperlinkListener(HyperlinkListener listener)
ハイパーリンクリスナーを削除します。 |
void |
replaceSelection(String content)
現在選択されているコンテンツを、指定された文字列で表される新しいコンテンツに置き換えます。 |
protected void |
scrollToReference(String reference)
指定された参照位置 (表示されている URL に対する URL.getRef メソッドによって返される値) までビューをスクロールします。 |
void |
setContentType(String type)
このエディタが処理するコンテンツタイプを設定します。 |
void |
setEditorKit(EditorKit kit)
コンテンツの処理のために現在インストールされているキットを設定します。 |
void |
setEditorKitForContentType(String type,
EditorKit k)
指定されたコンテンツタイプで使用できるようにエディタキットを直接設定します。 |
void |
setPage(String url)
表示されている現在の URL を設定します。 |
void |
setPage(URL page)
表示されている現在の URL を設定します。 |
void |
setText(String t)
この TextComponent のテキストを指定されたコンテンツ (このエディタのコンテンツタイプでなければならない) に設定します。 |
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
コンストラクタの詳細 |
public JEditorPane()
public JEditorPane(URL initialPage) throws IOException
initialPage
- URLpublic JEditorPane(String url) throws IOException
url
- URLpublic JEditorPane(String type, String text)
setContentType
メソッドおよび setText
メソッドを呼び出す簡易コンストラクタです。type
- 指定されたテキストの MIME 形式text
- 初期化に使うテキストメソッドの詳細 |
public void addHyperlinkListener(HyperlinkListener listener)
listener
- リスナーpublic void removeHyperlinkListener(HyperlinkListener listener)
listener
- リスナーpublic void fireHyperlinkUpdate(HyperlinkEvent e)
e
- イベントEventListenerList
public void setPage(URL page) throws IOException
scrollToReference
メソッドを呼び出すと、その参照位置までスクロールされます。目的の URL が現在表示されていない場合、getStream
メソッドが呼び出されて、指定されたストリームに対する制御がサブクラスに渡されます。
このメソッドは、EditorKit によって返されるドキュメントに基づいて同期的または非同期的にロードを行います。ドキュメントが AbstractDocument 型で、AbstractDocument.getAsynchronousLoadPriority
によって返された 0 以上の値を持つ場合、ページはその優先順位を使って独立したスレッドでロードされます。
ドキュメントが同期的にロードされる場合、そのドキュメントは、setDocument
(ドキュメントをエディタに関連付け、プロパティ変更イベントをトリガーする) の呼び出しによって、エディタにインストールされる前のストリームで満たされます。IOException がスローされた場合、部分的にロードされたドキュメントは破棄され、ドキュメントプロパティ変更イベントもページプロパティ変更イベントもトリガーされません。ドキュメントが正常にロードおよびインストールされた場合、UI によってそのドキュメントのビューが作成され (必要な場合はさらにスクロールされ)、ページプロパティ変更イベントがトリガーされます。
ドキュメントが非同期的にロードされる場合、ドキュメントは setDocument
(ドキュメントプロパティ変更イベントをトリガーする) の呼び出しを使ってただちにエディタにインストールされ、次に実際のロードを開始するスレッドが生成されます。この場合、ページプロパティ変更イベントはこのメソッドの呼び出しによって直接トリガーされることはなく、ロードを実行するスレッドが終了したときにトリガーされます。呼び出し側のスレッドはもう一方のスレッドでエラーが発生した場合に IOException をスローできないので、ロードが成功したかどうかに関係なく、ページプロパティ変更イベントはもう一方のスレッドが終了したときにトリガーされます。
page
- ページの URLgetPage()
public void read(InputStream in, Object desc) throws IOException
in
- 読み込み元ストリームdesc
- ストリームを記述するオブジェクトJTextComponent.read(java.io.Reader, java.lang.Object)
,
JTextComponent.setDocument(javax.swing.text.Document)
protected InputStream getStream(URL page) throws IOException
setPage
メソッドによるロードと間連する、指定された URL のストリームを取得します。デフォルトでは、このメソッドは単に URL を開き、ストリームを返します。このメソッドを実装し直すと、キャッシュからのストリームの取り出し、ストリームの進捗状況の監視などの便利な機能を実行できます。
このメソッドは、コンテンツタイプを確立し、その結果としてストリームのロードに使う適切な EditorKit を設定するという副作用を持つと見なされます。
protected void scrollToReference(String reference)
URL.getRef
メソッドによって返される値) までビューをスクロールします。デフォルトでは、このメソッドは HTMLDocument 内での参照位置を知っているだけです。実際のスクロール処理を実行するには、実装が scrollRectToVisible
メソッドを呼び出します。HTML 以外のドキュメント形式で参照位置へのスクロールが必要な場合は、このメソッドを再実装する必要があります。このメソッドは、コンポーネントが可視でない場合は無効です。reference
- スクロール先となる指定された位置public URL getPage()
public void setPage(String url) throws IOException
url
- 表示用の URLpublic String getUIClassID()
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
protected EditorKit createDefaultEditorKit()
public final EditorKit getEditorKit()
public final String getContentType()
public final void setContentType(String type)
getEditorKitForContentType
を呼び出し、エディタキットが正しく検出できたら setEditorKit
を呼び出します。このメソッドは、setEditorKit
の直接呼び出しの代わりに使用できる、簡易メソッドといえるものです。
コンテンツタイプ指定のパラメータとして文字セット定義が指定されている場合、関連付けられている EditorKit を使って入力ストリームをロードするときは、その文字セットが使われます。たとえば、タイプが text/html; charset=EUC-JP
として指定されている場合、コンテンツは、text/html
に登録されている EditorKit を使ってロードされ、ドキュメントに Unicode をロードするために EditorKit に提供されるリーダは、Unicode に変換するために EUC-JP
文字セットを使います。
type
- コンテンツを編集するための null ではない MIME 形式getContentType()
public void setEditorKit(EditorKit kit)
kit
- エディタの動作getEditorKit()
public EditorKit getEditorKitForContentType(String type)
このメソッドは、他種のコンテンツタイプレジストリを使用するための再実装が行えます。このメソッドを再実装すれば、たとえば Java Activation Framework を使用できるようになります。
type
- null ではないコンテンツタイプpublic void setEditorKitForContentType(String type, EditorKit k)
type
- null ではないコンテンツタイプk
- 設定されるエディタキットpublic void replaceSelection(String content)
このメソッドはスレッドに対して安全ですが、Swing のほとんどのメソッドはスレッドに対して安全ではありません。詳細は、「Threads and Swing」を参照してください。
content
- 選択されているコンテンツの代わりに挿入されるコンテンツpublic static EditorKit createEditorKitForContentType(String type)
プロトタイプ EditorKit のインスタンスが正しく検出されたら、複製され、その複製が返されます。
type
- コンテンツタイプpublic static void registerEditorKitForContentType(String type, String classname)
type
- null ではないコンテンツタイプclassname
- あとでロードするクラスpublic static void registerEditorKitForContentType(String type, String classname, ClassLoader loader)
type
- null ではないコンテンツタイプclassname
- あとでロードするクラスloader
- 名前をロードするための ClassLoaderpublic Dimension getPreferredSize()
public boolean isManagingFocus()
protected void processComponentKeyEvent(KeyEvent e)
public void setText(String t)
text/html
に設定されている場合、文字列は HTML の形式で指定されます。このメソッドを実装すると、StringReader
で JTextComponent.read
を呼び出すことができます。
このメソッドはスレッドに対して安全ですが、Swing のほとんどのメソッドはスレッドに対して安全ではありません。詳細は、「Threads and Swing」を参照してください。
t
- 設定される新しいテキストgetText()
public String getText()
StringWriter
で JTextComponent.write
を呼び出すことができます。setText(java.lang.String)
public boolean getScrollableTracksViewportWidth()
public boolean getScrollableTracksViewportHeight()
protected String paramString()
null
にはなりません。
JFC コンポーネントの新しい側面についての情報を返すには、paramString() をオーバーライドします。
public AccessibleContext getAccessibleContext()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |