|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.text.JTextComponent
JTextComponent は Swing テキストコンポーネントの基底クラスです。これは、java.awt.TextComponent クラスと互換性を保つためのものです。また、他のサービスも提供されており、プラグイン可能な UI や Bean のサポート以外の柔軟性もあります。
キャレットは、Swing テキストコンポーネント内のプラグイン可能なオブジェクトです。キャレット位置と選択領域の変更通知は、テキストコンポーネントに登録済みの CaretListener インタフェースの実装に送られます。UI は、カスタマイズしたキャレットが設定済みでないかぎりデフォルトのキャレットをインストールします。
テキストコンポーネントは、コンポーネントを操作するのに使うコマンドを提供します。これは本質的に、コンポーネントがその機能を表現する方法です。こうした機能は、TextAction の実装を使って、Swing アクションインタフェースに基づいて表現されます。テキストコンポーネントがサポートするコマンドのセットは、getActions()
メソッドを使って見つけることができます。こうしたアクションは、ボタンなどから発生するキーイベントに割り当てられます。
キーボードをいっそう柔軟に使えるように、キーマップを作成するためのサポートと、さまざまなキーストロークをあるアクションに割り当てるためのサポートが提供されています。複数のテキストコンポーネント間でキーマップを共有できるようにするために、各テキストコンポーネントは、TextAction を拡張するアクションを使うことができます。TextAction は、もっとも最近フォーカスを持っているかまたは持っていたためにアクションの主体となる JTextComponent はどれかを判定できます (アクションに送られた ActionEvent が、ターゲットテキストコンポーネントをそのソースとして保持しない場合)。
キーマップを使うように奨励されていますが、AWT 機構との下位互換はリスナーにイベントを消費して横取りする機会を与えることによって提供されます。キーボードイベントの配布は、イベントを消費できる配布のそれぞれで以下の順番に処理されます。
コンポーネントはデフォルトで、すべての JTextComponent のインスタンスによってデフォルトキーマップとして共有される、キーマップ (DEFAULT_KEYMAP) を作成します。 一般的に、Look & Feel の実装は、デフォルトのキーマップに解決する別のキーマップをインストールして、デフォルトのキーマップを、別のキーマップにはないキー割り当てに対応します。 以下に、最小の割り当てを示します。
テキストコンポーネントはモデル/ビュー分割を持ちます。テキストコンポーネントは、モデル、ビュー、コントローラを表すのに使うオブジェクトをまとめます。テキストドキュメントモデルは、モデルのオブザーバとして動作するほかのビューによって共有されます (たとえば、ドキュメントを複数のコンポーネントによって共有できる)。
モデルは Document
インタフェースによって定義されます。これは、編集時に変更を追跡する柔軟なテキスト記憶機構を提供することを意図し、いっそう高度なモデルに拡張できます。モデルインタフェースは、SGML が提供する式の機能、つまり多様なコンテンツを表現するのに使うシステムを取り込むためのものです。ドキュメントに加える各修正は、ビューを最新のモデルに同期できるようにする DocumentEvent
という形式で変更の詳細の通知をすべてのオブザーバに送らせます。 このイベントは、DocumentListener
インタフェースを実装して監視中のモデルに配信対象を登録したオブザーバに送られます。
modelToView(int)
と viewToModel(java.awt.Point)
という 2 つのメソッドが用意されています。
警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。
Document
,
DocumentEvent
,
DocumentListener
,
Caret
,
CaretEvent
,
CaretListener
,
TextUI
,
View
,
ViewFactory
, 直列化された形式内部クラスの概要 | |
class |
JTextComponent.AccessibleJTextComponent
JTextComponent のユーザ補助機能を実装します。 |
static class |
JTextComponent.KeyBinding
キー割り当てを作成するための割り当てレコードです。 |
クラス javax.swing.JComponent から継承した内部クラス |
JComponent.AccessibleJComponent |
フィールドの概要 | |
static String |
DEFAULT_KEYMAP
JTextComponent のインスタンスが異なるキーマップセットを持っていないかぎり、すべての JTextComponent のインスタンスで共有されるデフォルトキーマップの名前です。 |
static String |
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 |
コンストラクタの概要 | |
JTextComponent()
新しい JTextComponent を作成します。 |
メソッドの概要 | |
void |
addCaretListener(CaretListener listener)
変更を通知するためのキャレットリスナーをキャレットに追加します。 |
static Keymap |
addKeymap(String nm,
Keymap parent)
新しいキーマップをキーマップ階層に追加します。 |
void |
copy()
関連付けられているテキストモデル内の現在選択されている領域をシステムクリップボードに転送して、テキストモデル内のコンテンツはそのまま残します。 |
void |
cut()
関連付けられているテキストモデル内の現在選択されている領域をシステムクリップボードに転送して、モデルからコンテンツを削除します。 |
protected void |
fireCaretUpdate(CaretEvent e)
通知の配信対象を、指定されたイベントタイプで登録したすべてのリスナーに通知します。 |
AccessibleContext |
getAccessibleContext()
この JComponent に関連付けられている AccessibleContext を取得します。 |
Action[] |
getActions()
エディタのコマンドリストを取得します。 |
Caret |
getCaret()
ビューでテキスト指向ナビゲーションを可能にするキャレットを取得します。 |
Color |
getCaretColor()
キャレットを描画するのに使う現在の色を取得します。 |
int |
getCaretPosition()
テキストコンポーネントのテキスト挿入キャレットの位置を返します。 |
Color |
getDisabledTextColor()
無効にしたテキストを描画するのに使う現在の色を取得します。 |
Document |
getDocument()
エディタに関連付けられているモデルを取得します。 |
char |
getFocusAccelerator()
受信側テキストコンポーネントにフォーカスを取得させるキーアクセラレータを返します。 |
Highlighter |
getHighlighter()
ハイライトを担当するオブジェクトを取得します。 |
Keymap |
getKeymap()
このテキストコンポーネントで現在アクティブなキーマップを取得します。 |
static Keymap |
getKeymap(String nm)
それまでにドキュメントに追加されていた名前付きキーマップを取得します。 |
Insets |
getMargin()
テキストコンポーネントの境界とそのテキストの間のマージンを返します。 |
Dimension |
getPreferredScrollableViewportSize()
ビューコンポーネントのビューポートの望ましいサイズを返します。 |
int |
getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction)
論理行または列を表示するコンポーネントは、方向の値に基づいて、1 ブロック分の行または列を完全に表示するスクロールインクリメントを計算します。 |
boolean |
getScrollableTracksViewportHeight()
ビューポートが、常にこの Scrollable の高さを強制的にビューポートの高さに一致させようとする場合は、true を返します。 |
boolean |
getScrollableTracksViewportWidth()
ビューポートが、常にこの Scrollable の幅を強制的にビューポートの幅に一致させようとする場合は、true を返します。 |
int |
getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction)
論理行または列を表示するコンポーネントは、方向の値に基づいて、新しい行または列を完全に表示するスクロールインクリメントを計算します。 |
String |
getSelectedText()
この TextComponent に格納された選択されているテキストを返します。 |
Color |
getSelectedTextColor()
選択したテキストを描画するのに使う現在の色を取得します。 |
Color |
getSelectionColor()
選択領域を描画するのに使う現在の色を取得します。 |
int |
getSelectionEnd()
選択したテキストの末尾位置を返します。 |
int |
getSelectionStart()
選択したテキストの開始位置を返します。 |
String |
getText()
この TextComponent に格納されたテキストを返します。 |
String |
getText(int offs,
int len)
コンポーネントが表すテキストの一部を取得します。 |
TextUI |
getUI()
このテキスト指向エディタのユーザインタフェースファクトリを取得します。 |
boolean |
isEditable()
この TextComponent が編集可能かどうかを示すブール型を返します。 |
boolean |
isFocusTraversable()
フォーカスの行き来ができる場合は true を返します。 |
boolean |
isOpaque()
このコンポーネントが完全に不透明な場合は true を返します。 |
static void |
loadKeymap(Keymap map,
JTextComponent.KeyBinding[] bindings,
Action[] actions)
キーマップに多数の割り当てをロードします。 |
Rectangle |
modelToView(int pos)
モデル内の指定された位置をビュー座標系の場所に変換します。 |
void |
moveCaretPosition(int pos)
キャレットを新しい位置に移動して、そのあとに、setCaretPosition が前回に呼び出されたときに定義されたマークを残します。 |
protected String |
paramString()
この JTextComponent の文字列表現を返します。 |
void |
paste()
システムクリップボードのコンテンツを関連付けられているテキストモデルに転送します。 |
protected void |
processComponentKeyEvent(KeyEvent e)
コンポーネント自身が認識するキーイベントをすべて処理します。 |
void |
read(Reader in,
Object desc)
ストリームから初期化します。 |
void |
removeCaretListener(CaretListener listener)
キャレットリスナーを削除します。 |
static Keymap |
removeKeymap(String nm)
それまでにドキュメントに追加されていた名前付きキーマップを削除します。 |
void |
removeNotify()
このコンポーネントに、コンテナから削除されたことを通知します。 |
void |
replaceSelection(String content)
現在選択されているコンテンツを、渡された文字列が示す新しいコンテンツで置き換えます。 |
void |
select(int selectionStart,
int selectionEnd)
指定された先頭と末尾の間のテキストを選択します。 |
void |
selectAll()
TextComponent 内のすべてのテキストを選択します。 |
void |
setCaret(Caret c)
使用するキャレットを設定します。 |
void |
setCaretColor(Color c)
キャレットを描画するのに使う現在の色を設定します。 |
void |
setCaretPosition(int position)
TextComponent のテキスト挿入キャレットの位置を設定します。 |
void |
setDisabledTextColor(Color c)
無効にしたテキストを描画するのに使う現在の色を設定します。 |
void |
setDocument(Document doc)
エディタをテキストドキュメントに関連付けます。 |
void |
setEditable(boolean b)
この TextComponent が編集可能かどうかを設定します。 |
void |
setEnabled(boolean b)
パラメータ b の値に基づいて、このコンポーネントを有効または無効にします。 |
void |
setFocusAccelerator(char aKey)
受信側テキストコンポーネントにフォーカスを取得させるキーアクセラレータを設定します。 |
void |
setHighlighter(Highlighter h)
使用するハイライタを設定します。 |
void |
setKeymap(Keymap map)
イベントをアクションに割り当てるのに使うキーマップを設定します。 |
void |
setMargin(Insets m)
テキストコンポーネントの境界とそのテキストの間のマージン空白を設定します。 |
void |
setOpaque(boolean o)
UI がバックグラウンドを描画する必要があるかどうかを設定します。 |
void |
setSelectedTextColor(Color c)
選択したテキストを描画するのに使う現在の色を設定します。 |
void |
setSelectionColor(Color c)
選択領域を描画するのに使う現在の色を設定します。 |
void |
setSelectionEnd(int selectionEnd)
選択領域の末尾を、指定された位置に設定します。 |
void |
setSelectionStart(int selectionStart)
選択開始を、指定された位置に設定します。 |
void |
setText(String t)
この TextComponent に、指定されたテキストを設定します。 |
void |
setUI(TextUI ui)
このテキスト指向エディタのユーザインタフェースファクトリを設定します。 |
void |
updateUI()
プラグイン可能な UI を再ロードします。 |
int |
viewToModel(Point pt)
ビュー座標系の指定された位置をモデル内のもっとも近い表現位置に変換します。 |
void |
write(Writer out)
モデルのコンテンツを、指定されたストリームに格納します。 |
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
フィールドの詳細 |
public static final String FOCUS_ACCELERATOR_KEY
public static final String DEFAULT_KEYMAP
コンストラクタの詳細 |
public JTextComponent()
メソッドの詳細 |
public TextUI getUI()
public void setUI(TextUI ui)
ui
- ファクトリpublic void updateUI()
public boolean isOpaque()
public void setOpaque(boolean o)
o
- バックグラウンドを描画する必要がある場合は truepublic void addCaretListener(CaretListener listener)
listener
- リスナーCaretEvent
public void removeCaretListener(CaretListener listener)
listener
- リスナーCaretEvent
protected void fireCaretUpdate(CaretEvent e)
e
- イベントEventListenerList
public void setDocument(Document doc)
doc
- 表示/編集するドキュメントgetDocument()
public Document getDocument()
public Action[] getActions()
public void setMargin(Insets m)
m
- 境界とテキストの間のスペースpublic Insets getMargin()
public Caret getCaret()
public void setCaret(Caret c)
c
- キャレットgetCaret()
public Highlighter getHighlighter()
public void setHighlighter(Highlighter h)
h
- ハイライタgetHighlighter()
public void setKeymap(Keymap map)
map
- キーマップgetKeymap()
public Keymap getKeymap()
public static Keymap addKeymap(String nm, Keymap parent)
nm
- キーマップ名 (ドキュメント内の名前付きキーマップのコレクションで一意でなければならない)。キーマップに名前を指定しない場合は、名前は null でもかまわない。ただし、名前なしキーマップは名前で取得できないので、返された参照の管理は呼び出し側の責任になるparent
- 親キーマップ。未指定の割り当てをほかの特定のキーマップで解釈処理する必要がない場合は、null でもかまわないpublic static Keymap removeKeymap(String nm)
nm
- 削除するキーマップ名public static Keymap getKeymap(String nm)
nm
- キーマップ名public static void loadKeymap(Keymap map, JTextComponent.KeyBinding[] bindings, Action[] actions)
キーマップに多数の割り当てをロードします。このメソッドを使うと、定義のスタティックテーブルを取得して特定のキーマップにロードできます。次に、いくつかのキーを JtextComponent に関連付けられているカット、コピー、ペーストの各アクションに割り当てる例を示します。
static final JTextComponent.KeyBinding[] defaultBindings = {
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK),
DefaultEditorKit.copyAction),
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK),
DefaultEditorKit.pasteAction),
new JTextComponent.KeyBinding(
KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK),
DefaultEditorKit.cutAction),
};
JTextComponent c = new JTextPane();
Keymap k = c.getKeymap();
JTextComponent.loadKeymap(k, defaultBindings, c.getActions());
割り当てとアクションのセットは空でもかまいませんが、null であってはなりません。map
- キーマップbindings
- 割り当てactions
- アクションのセットpublic Color getCaretColor()
public void setCaretColor(Color c)
c
- 色getCaretColor()
public Color getSelectionColor()
public void setSelectionColor(Color c)
c
- 色getSelectionColor()
public Color getSelectedTextColor()
public void setSelectedTextColor(Color c)
c
- 色getSelectedTextColor()
public Color getDisabledTextColor()
public void setDisabledTextColor(Color c)
c
- 色getDisabledTextColor()
public void replaceSelection(String content)
このメソッドは、キーマップアクションに割り当てられるコンテンツを挿入するアクションのデフォルト実装によって使用されます。
このメソッドは、Swing のほとんどのメソッドとは異なり、スレッドに対して安全です。詳細は、「Threads and Swing」を参照してください。
コンポーネントが現在編集できない状態であれば、ビープ音を鳴らして復帰します。実際の内容であるモデルが null である場合は、何も行いません。
content
- 選択領域を置き換えるコンテンツpublic String getText(int offs, int len) throws BadLocationException
offs
- オフセット >= 0len
- 長さ >= 0public Rectangle modelToView(int pos) throws BadLocationException
pos
- 位置 >= 0TextUI.modelToView(javax.swing.text.JTextComponent, int)
public int viewToModel(Point pt)
pt
- 変換するビュー内の位置TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)
public void cut()
public void copy()
public void paste()
replaceSelection(java.lang.String)
public void moveCaretPosition(int pos)
pos
- 位置setCaretPosition(int)
public void setFocusAccelerator(char aKey)
aKey
- キーgetFocusAccelerator()
public char getFocusAccelerator()
public void read(Reader in, Object desc) throws IOException
in
- 読み取り元のストリームdesc
- ストリームを記述するオブジェクト。String、File、URL など。ある種のドキュメント (たとえば HTML) は、この情報を利用できる場合がある。null 以外の場合、ドキュメントのプロパティとして追加されるEditorKit.createDefaultDocument()
,
setDocument(javax.swing.text.Document)
,
PlainDocument
public void write(Writer out) throws IOException
out
- 出力ストリームpublic void removeNotify()
public void setEnabled(boolean b)
b
の値に基づいて、このコンポーネントを有効または無効にします。有効なコンポーネントは、ユーザ入力に応答してイベントを生成できます。コンポーネントはデフォルトで、初期的に有効化されています。新しい状態の設定後に repaint() が実行されます。b
- このコンポーネントを有効にする場合は true
、このコンポーネントを無効にする場合は true
以外Component.isEnabled()
public boolean isFocusTraversable()
protected void processComponentKeyEvent(KeyEvent e)
これを実装するとデフォルトのアクションを取得でき、一般的に文字をコンテンツとしてドキュメントに挿入します。サブクラスは、いくつかのキーイベントをそれ自身で処理する場合は、一般的にこのメソッドをオーバーライドします。イベントが処理される場合に、これが消費されます。
e
- イベントpublic void setCaretPosition(int position)
position
- 位置public int getCaretPosition()
public void setText(String t)
このメソッドは、Swing のほとんどのメソッドとは異なり、スレッドに対して安全です。詳細は、「Threads and Swing」を参照してください。
t
- 設定する新しいテキストgetText(int, int)
public String getText()
setText(java.lang.String)
public String getSelectedText()
setText(java.lang.String)
public boolean isEditable()
setEditable(boolean)
public void setEditable(boolean b)
b
- 設定するブール型isEditable()
public int getSelectionStart()
public void setSelectionStart(int selectionStart)
これは、このメソッドを java.awt.TextComponent で呼び出したコードに対する下位互換に役立ちます。これを実装すると、実際の選択領域が管理されている場所である Caret の実装に転送できます。
selectionStart
- テキストの開始位置 >= 0public int getSelectionEnd()
public void setSelectionEnd(int selectionEnd)
これは、このメソッドを java.awt.TextComponent で呼び出したコードに対する下位互換に役立ちます。これを実装すると、実際の選択領域が管理されている場所である Caret の実装に転送できます。
selectionEnd
- テキストの末尾 >= 0public void select(int selectionStart, int selectionEnd)
selectionStart
- テキストの先頭 >= 0selectionEnd
- テキストの末尾 >= 0setCaretPosition(int)
,
moveCaretPosition(int)
public void selectAll()
public Dimension getPreferredScrollableViewportSize()
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
このデフォルト実装は、単純に可視領域の 10% を返します。サブクラスは、よりいっそう適正な値を提供できます。
visibleRect
- ビューポート内で可視のビュー領域orientation
- SwingConstants.VERTICAL または SwingConstants.HORIZONTALdirection
- 上または左のスクロールではゼロより小さく、下または右のスクロールではゼロより大きいJScrollBar.setUnitIncrement(int)
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
このデフォルト実装は、単純に可視領域を返します。サブクラスは、よりいっそう適正な値を提供できます。
visibleRect
- ビューポート内で可視のビュー領域orientation
- SwingConstants.VERTICAL または SwingConstants.HORIZONTALdirection
- 上または左のスクロールではゼロより小さく、下または右のスクロールではゼロより大きいJScrollBar.setBlockIncrement(int)
public boolean getScrollableTracksViewportWidth()
JViewport のようなコンテナをスクロールすると、そのコンテナが検査されるたびにこのメソッドを使います。
public boolean getScrollableTracksViewportHeight()
JViewport のようなコンテナをスクロールすると、そのコンテナが検査されるたびにこのメソッドを使います。
public AccessibleContext getAccessibleContext()
protected String paramString()
null
にはなりません。
JFC コンポーネントの新しい側面についての情報を返すには、paramString() をオーバーライドします。
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |