|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.swing.plaf.ComponentUI | +--javax.swing.plaf.TextUI | +--javax.swing.plaf.basic.BasicTextUI
テキストコンポーネントの Look & Feel の基礎となるクラスです。このクラスは、JTextComponent
の拡張のための Look & Feel を作成するときに便利な、エディタのビューおよびコントローラの基本的なサービスを提供します。
多くの場合、状態は関連する JTextComponent
にバウンドプロパティとして保持されており、UI では各プロパティのデフォルト値がインストールされます。このデフォルトの動作により、すべてのプロパティに対して値がインストールされますが、通常、Look & Feel の実装ではさらに多くのことが行われます。Look & Feel の実装により、少なくともキーバインディングがインストールされるのが普通です。
また、JTextComponent に関連した Document
が AbstractDocument
のサブクラスである場合、このクラスは並行サポートも提供します。View または View 階層へのアクセスは、モデルを変更するスレッドと、描画したいモデルとビュー間の座標変換を行なったりするための Swing イベントスレッドとの間で直列化されます。ルートビューにアクセスするには、最初に AbstractDocument の読み込みロックを取得して、そのロックを最終ブロックで解放する必要があります。
定義する必要がある重要なメソッドは、UIManager からデフォルトの値を取り出すために使われるキーの基礎である getPropertyPrefix()
メソッドです。取得した文字列は、名前の特定の Look & Feel 部分 (Metal、Motif など) のない TextUI の型 (TextField、TextArea など) を反映します。
モデルのビューを構築するには、次に示す方法のどれかを使います。
create(javax.swing.text.Element)
メソッドを実装し直します。
#createViewFactory
メソッドを実装し直す必要があります。
警告:
このクラスの直列化されたオブジェクトは、今後の Swing リリースとの互換性がなくなります。現在の直列化のサポートは、短期記憶や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。バージョン 1.4 の時点では、JavaBeans の長期記憶用のサポートは、すべて java.beans
パッケージに追加されています。XMLEncoder
を参照してください。
入れ子クラスの概要 | |
static class |
BasicTextUI.BasicCaret
|
static class |
BasicTextUI.BasicHighlighter
|
コンストラクタの概要 | |
BasicTextUI()
新しい UI を作成します。 |
メソッドの概要 | |
View |
create(Element elem)
要素のビューを作成します。 |
View |
create(Element elem,
int p0,
int p1)
要素のビューを作成します。 |
protected Caret |
createCaret()
キャレットに使うオブジェクトを作成します。 |
protected Highlighter |
createHighlighter()
ハイライトを追加するために使うオブジェクトを作成します。 |
protected Keymap |
createKeymap()
テキストコンポーネントに使うキーマップを作成し、それに必要なバインディングをインストールします。 |
void |
damageRange(JTextComponent tc,
int p0,
int p1)
モデルの指定された部分に対応するビューの部分がペイントし直されます。 |
void |
damageRange(JTextComponent t,
int p0,
int p1,
Position.Bias p0Bias,
Position.Bias p1Bias)
モデル内の指定された一部分に対応するビューの部分が描画し直されます。 |
protected JTextComponent |
getComponent()
この UI の実装に関連したテキストコンポーネントを取得します。 |
EditorKit |
getEditorKit(JTextComponent tc)
UI の EditorKit を取得します。 |
protected String |
getKeymapName()
この UI にデフォルトでインストールまたは使用されるキーマップの名前を取得します。 |
Dimension |
getMaximumSize(JComponent c)
エディタコンポーネントの最大サイズを返します。 |
Dimension |
getMinimumSize(JComponent c)
エディタコンポーネントの最小サイズを返します。 |
int |
getNextVisualPositionFrom(JTextComponent t,
int pos,
Position.Bias b,
int direction,
Position.Bias[] biasRet)
キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。 |
Dimension |
getPreferredSize(JComponent c)
エディタコンポーネントの適切なサイズを取得します。 |
protected abstract String |
getPropertyPrefix()
UIManager を使ってプロパティを参照するためのキーとして使われる名前を返します。 |
View |
getRootView(JTextComponent tc)
モデルが空間的にどのように表現されているかを判定するためにトラバースすることのできる、関連したテキストコンポーネント (すなわち階層のルート) を割り当てられた View を取得します。 |
String |
getToolTipText(JTextComponent t,
Point pt)
渡された位置でツールヒントとして使われる文字列を返します。 |
protected Rectangle |
getVisibleEditorRect()
ルート View に指定する割り当てを取得します。 |
protected void |
installDefaults()
フォント、フォアグラウンド、バックグラウンド、キャレットの色、選択の色、選択されたテキストの色、無効になったテキストの色、ボーダの色などのコンポーネントプロパティを初期化します。 |
protected void |
installKeyboardActions()
|
protected void |
installListeners()
UI のリスナーをインストールします。 |
void |
installUI(JComponent c)
コンポーネントの UI をインストールします。 |
protected void |
modelChanged()
モデルの変更にフラグを立てます。 |
Rectangle |
modelToView(JTextComponent tc,
int pos)
モデル内の指定された位置を、ビュー座標体系内の場所に変換します。 |
Rectangle |
modelToView(JTextComponent tc,
int pos,
Position.Bias bias)
モデル内の指定された位置を、ビュー座標体系内の場所に変換します。 |
void |
paint(Graphics g,
JComponent c)
インタフェースをペイントします。 |
protected void |
paintBackground(Graphics g)
ビューのバックグラウンドをペイントします。 |
protected void |
paintSafely(Graphics g)
このスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。 |
protected void |
propertyChange(PropertyChangeEvent evt)
関連する JTextComponent でバウンドプロパティが変更されたときに呼び出されます。 |
protected void |
setView(View v)
ビュー階層の現在のルートを設定し、invalidate() を呼び出します。 |
protected void |
uninstallDefaults()
null に明示的にオーバーライドされていないコンポーネントプロパティを設定します。 |
protected void |
uninstallKeyboardActions()
|
protected void |
uninstallListeners()
UI のリスナーをアンインストールします。 |
void |
uninstallUI(JComponent c)
コンポーネントの UI をアンインストールします。 |
void |
update(Graphics g,
JComponent c)
スーパークラスは制御不可能な方法でバックグラウンドをペイントします。 |
int |
viewToModel(JTextComponent tc,
Point pt)
ビュー座標体系内の指定された位置を、モデル内の最も近い場所に変換します。 |
int |
viewToModel(JTextComponent tc,
Point pt,
Position.Bias[] biasReturn)
ビュー座標体系内の指定された位置を、モデル内の最も近い場所に変換します。 |
クラス javax.swing.plaf.ComponentUI から継承したメソッド |
contains, createUI, getAccessibleChild, getAccessibleChildrenCount |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public BasicTextUI()
メソッドの詳細 |
protected Caret createCaret()
protected Highlighter createHighlighter()
protected String getKeymapName()
protected Keymap createKeymap()
キーマップを作成するために使われるバインディングのセットは、getPropertyPrefix()
メソッドと文字列 .keyBindings
を結合したキーを使って UIManager から取得されます。型は、JTextComponent.KeyBinding[]
であると見なされます。
getKeymapName()
,
JTextComponent
protected void propertyChange(PropertyChangeEvent evt)
evt
- プロパティ変更イベントprotected abstract String getPropertyPrefix()
protected void installDefaults()
uninstallDefaults()
,
installUI(javax.swing.JComponent)
protected void uninstallDefaults()
installDefaults()
,
uninstallUI(javax.swing.JComponent)
protected void installListeners()
protected void uninstallListeners()
protected void installKeyboardActions()
protected void uninstallKeyboardActions()
protected void paintBackground(Graphics g)
g
- グラフィックスコンテキストprotected final JTextComponent getComponent()
protected void modelChanged()
protected final void setView(View v)
v
- ルートビューprotected void paintSafely(Graphics g)
g
- グラフィックスコンテキストpublic void installUI(JComponent c)
ComponentUI
内の installUI
c
- エディタコンポーネントComponentUI.installUI(javax.swing.JComponent)
public void uninstallUI(JComponent c)
ComponentUI
内の uninstallUI
c
- エディタコンポーネントComponentUI.uninstallUI(javax.swing.JComponent)
public void update(Graphics g, JComponent c)
注: また、デフォルトの描画の場合は問題ありませんが、スーパークラスの場合はバックグラウンド描画時にスレッドセーフではありません。
ComponentUI
内の update
g
- ペイント先となる Graphics
コンテキストc
- ペイントされるコンポーネント。この引数はしばしば無視されるが、UI オブジェクトが状態なしで複数のコンポーネントに共有される場合に使用されることがあるComponentUI.paint(java.awt.Graphics, javax.swing.JComponent)
,
JComponent.paintComponent(java.awt.Graphics)
public final void paint(Graphics g, JComponent c)
ComponentUI
内の paint
g
- グラフィックスコンテキストc
- エディタコンポーネントComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
public Dimension getPreferredSize(JComponent c)
ComponentUI
内の getPreferredSize
c
- エディタコンポーネント
JComponent.getPreferredSize()
,
LayoutManager.preferredLayoutSize(java.awt.Container)
public Dimension getMinimumSize(JComponent c)
ComponentUI
内の getMinimumSize
c
- エディタコンポーネント
JComponent.getMinimumSize()
,
LayoutManager.minimumLayoutSize(java.awt.Container)
,
ComponentUI.getPreferredSize(javax.swing.JComponent)
public Dimension getMaximumSize(JComponent c)
ComponentUI
内の getMaximumSize
c
- エディタコンポーネント
JComponent.getMaximumSize()
,
LayoutManager2.maximumLayoutSize(java.awt.Container)
protected Rectangle getVisibleEditorRect()
public Rectangle modelToView(JTextComponent tc, int pos) throws BadLocationException
TextUI
内の modelToView
tc
- この UI がインストールされているテキストコンポーネントpos
- 変換対象のモデル内でのローカル位置 <= 0
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を表さない場合TextUI.modelToView(javax.swing.text.JTextComponent, int)
public Rectangle modelToView(JTextComponent tc, int pos, Position.Bias bias) throws BadLocationException
TextUI
内の modelToView
tc
- この UI がインストールされているテキストコンポーネントpos
- 変換対象のモデル内でのローカル位置 <= 0
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を表さない場合TextUI.modelToView(javax.swing.text.JTextComponent, int)
public int viewToModel(JTextComponent tc, Point pt)
TextUI
内の viewToModel
tc
- この UI がインストールされているテキストコンポーネントpt
- 変換対象のビューの座標系での位置。この場合の座標系は、マウスイベントと同じ座標系でなければならない
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)
public int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn)
TextUI
内の viewToModel
tc
- この UI がインストールされているテキストコンポーネントpt
- 変換対象のビューの座標系での位置。この場合の座標系は、マウスイベントと同じ座標系でなければならないbiasReturn
- 指定された点がモデルの前の文字、あるいは次の文字に近いのかを示すために、このメソッドによって書き込まれる
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)
public int getNextVisualPositionFrom(JTextComponent t, int pos, Position.Bias b, int direction, Position.Bias[] biasRet) throws BadLocationException
TextUI
内の getNextVisualPositionFrom
pos
- 変換対象の位置 <= 0direction
- キーボード上に通常ある矢印キーと見なすことができる、現在の位置からの方向。SwingConstants.WEST、SwingConstants.EAST、SwingConstants.NORTH、または SwingConstants.SOUTH
BadLocationException
IllegalArgumentException
- 方向が無効な場合public void damageRange(JTextComponent tc, int p0, int p1)
TextUI
内の damageRange
tc
- この UI がインストールされているテキストコンポーネントp0
- 範囲の始点 <= 0p1
- 範囲の終点 <= p0TextUI.damageRange(javax.swing.text.JTextComponent, int, int)
public void damageRange(JTextComponent t, int p0, int p1, Position.Bias p0Bias, Position.Bias p1Bias)
TextUI
内の damageRange
p0
- 範囲の始点 <= 0p1
- 範囲の終点 <= p0public EditorKit getEditorKit(JTextComponent tc)
TextUI
内の getEditorKit
tc
- この UI がインストールされているテキストコンポーネント
TextUI.getEditorKit(javax.swing.text.JTextComponent)
public View getRootView(JTextComponent tc)
注: View 階層はルートビューからトラバースすることができ、他のことも同様にできます。このように行われたことは、TextUI を通じた単純なメソッド呼び出しのように保護することができません。したがって、並行性の考えられる適切なオペレーションは、このメソッドを呼び出す論理で処理が行われるようにする必要があります。
TextUI
内の getRootView
tc
- この UI がインストールされているテキストコンポーネント
TextUI.getRootView(javax.swing.text.JTextComponent)
public String getToolTipText(JTextComponent t, Point pt)
TextUI
内の getToolTipText
JTextComponent.getToolTipText(java.awt.event.MouseEvent)
,
View.getToolTipText(float, float, java.awt.Shape)
public View create(Element elem)
ViewFactory
内の create
elem
- 要素
View
public View create(Element elem, int p0, int p1)
elem
- 要素p0
- 開始オフセット <= 0p1
- 終了オフセット <= p0
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.