- すべての実装されたインタフェース:
ViewFactory
- 直系の既知のサブクラス:
BasicEditorPaneUI
,BasicTextAreaUI
,BasicTextFieldUI
,DefaultTextUI
テキスト・コンポーネントのLook & Feelの基礎です。 このクラスは、JTextComponent
の拡張のためのLook & Feelを作成するときに便利な、エディタ・ビューおよびコントローラの基本的なサービスを提供します。
ほとんどの状態は関連付けられたJTextComponent
にバウンド・プロパティとして保持されており、UIはさまざまなプロパティのデフォルト値をインストールします。 このデフォルトは、すべてのプロパティのために何かをインストールします。 ただし通常は、LAF実装が追加の作業を行います。 少なくとも、LAFは一般的にキー・バインディングをインストールします。
また、JTextComponentに関連付けられたDocument
がAbstractDocument
のサブクラスである場合、このクラスはいくつかの並行サポートも提供します。 ViewまたはView階層へのアクセスは、モデルを変更するスレッドとSwingイベント・スレッド(レンダリング、モデルとビュー座標変換などを行う)との間で直列化されます。 ルート・ビューにアクセスするときは、最初にAbstractDocumentで読取りロックを獲得して、そのロックをfinallyブロックで解放するようにしてください。
定義する必要がある重要なメソッドは、UIManagerからデフォルトを取り出すために使用されるキーの基礎として使用される、getPropertyPrefix()
メソッドです。 文字列は、(例、Metal、Motif、など)という名前の特定のLAF部分がないTextUI (例、TextField、TextAreaなど)のタイプを反映する必要があります。
モデルのビューを構築するには、次に示す方法のいずれかを使います。
-
1つの方法は、単純にUIでViewFactoryインタフェースを定義し直すことです。 デフォルトでは、このUIはそれ自体がView実装のファクトリとして動作します。 これは、単純なファクトリに便利です。 この方法を実行するには、
create(javax.swing.text.Element)
メソッドを実装し直します。 - より複雑なドキュメントを作成するための一般的な方法は、EditorKit実装がファクトリを返すようにすることです。 EditorKitはある種のドキュメントを保守するために必要なあらゆる要素を結び付けるので、通常はファクトリがその重要な部分であり、EditorKit実装によって作成されるべきです。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beans
パッケージに追加されました。 XMLEncoder
を参照してください。
-
ネストされたクラスのサマリー
修飾子と型クラス説明static class
インタフェースCaret
のデフォルト実装。static class
インタフェースHighlighter
のデフォルト実装。 -
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明要素のビューを作成します。要素のビューを作成します。protected Caret
キャレットに使用するオブジェクトを作成します。protected Highlighter
ハイライトを追加するために使用するオブジェクトを作成します。protected Keymap
テキスト・コンポーネントに使用するキーマップを作成し、それに必要なバインディングをインストールします。void
damageRange
(JTextComponent tc, int p0, int p1) モデル内の指定された一部分に対応するビューの部分が描画し直されるようにします。void
damageRange
(JTextComponent t, int p0, int p1, Position.Bias p0Bias, Position.Bias p1Bias) モデル内の指定された一部分に対応するビューの部分が描画し直されるようにします。protected final JTextComponent
このUI実装に関連付けられたテキスト・コンポーネントを取得します。UIのEditorKitを取得します。protected String
このUIにデフォルトでインストールまたは使用されるキーマップの名前を取得します。エディタ・コンポーネントの最大サイズを取得します。エディタ・コンポーネントの最小サイズを取得します。int
getNextVisualPositionFrom
(JTextComponent t, int pos, Position.Bias b, int direction, Position.Bias[] biasRet) キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。エディタ・コンポーネントの推奨サイズを取得します。protected abstract String
UIManagerを介してプロパティを参照するためのキーとして使用される名前を取得します。モデルが空間的にどのように表現されているかを判定するためにトラバースすることのできる、関連したテキスト・コンポーネント(すなわち階層のルート)の割り当てを持つViewを取得します。getToolTipText
(JTextComponent t, Point pt) 渡された位置でツール・チップとして使用される文字列を返します。protected Rectangle
ルートViewを渡す割り当てを取得します。protected void
フォント、フォアグラウンド、バックグラウンド、キャレットの色、選択色、選択したテキストの色、無効なテキストの色、ボーダー、マージンなどのコンポーネント・プロパティを初期化します。protected void
キーボード操作を登録します。protected void
UIのリスナーをインストールします。void
コンポーネントのUIをインストールします。protected void
モデルの変更にフラグを立てます。modelToView
(JTextComponent tc, int pos) 非推奨。modelToView
(JTextComponent tc, int pos, Position.Bias bias) 非推奨。final void
paint
(Graphics g, JComponent c) インタフェースをペイントします。protected void
ビューのバックグラウンドをペイントします。protected void
このスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。protected void
このメソッドは、関連付けられたJTextComponentでバウンド・プロパティが変更されたときに呼び出されます。protected final void
ビュー階層の現在のルートを設定し、invalidate()を呼び出します。protected void
null
に明示的にオーバーライドされていないコンポーネント・プロパティを設定します。protected void
キーボード操作の登録を解除します。protected void
UIのリスナーをアンインストールします。void
コンポーネントの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.TextUIで宣言されたメソッド
getToolTipText2D, modelToView2D, viewToModel2D
クラス javax.swing.plaf.ComponentUIで宣言されたメソッド
contains, createUI, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
-
コンストラクタの詳細
-
BasicTextUI
public BasicTextUI()新しいUIを作成します。
-
-
メソッドの詳細
-
createCaret
protected Caret createCaret()キャレットに使用するオブジェクトを作成します。 デフォルトでは、BasicCaretのインスタンスが生成されます。 InputPositionインタフェースを実装する何かほかのものまたはJCaretのサブクラスを提供するために、このメソッドを再定義できます。- 戻り値:
- キャレット・オブジェクト
-
createHighlighter
protected Highlighter createHighlighter()ハイライトを追加するために使用するオブジェクトを作成します。 デフォルトでは、BasicHighlighterのインスタンスが生成されます。 Highlighterインタフェースを実装する何かほかのものまたはDefaultHighlighterのサブクラスを提供するために、このメソッドを再定義できます。- 戻り値:
- ハイライタ
-
getKeymapName
protected String getKeymapName()このUIにデフォルトでインストールまたは使用されるキーマップの名前を取得します。 これは、クラス名に基づいて名前を作成するために実装されます。 名前は、パッケージ・プレフィクスが削除されたクラスの名前です。- 戻り値:
- 名前
-
createKeymap
protected Keymap createKeymap()テキスト・コンポーネントに使用するキーマップを作成し、それに必要なバインディングをインストールします。 デフォルトでは、キーマップはこの型のTextUIのすべてのインスタンスで共有されます。 キーマップの名前は、getKeymapNameメソッドで定義されます。 キーマップが見つからない場合は、JTextComponentのDEFAULT_KEYMAPが使用されます。キーマップを作成するために使用されるバインディングのセットは、
getPropertyPrefix()
メソッドと文字列.keyBindings
を結合することでフォーマットされるキーを使用してUIManagerから取得されます。 型は、JTextComponent.KeyBinding[]
になります。- 戻り値:
- キーマップ
- 関連項目:
-
propertyChange
protected void propertyChange(PropertyChangeEvent evt) このメソッドは、関連付けられたJTextComponentでバウンド・プロパティが変更されたときに呼び出されます。 これは、UIがJTextComponentのサブクラスのバウンド・プロパティをどのように表示するかを反映するためにUIの実装により変更できるフックです。 このメソッドは、実装されても何も実行しません(JTextComponent自体でのプロパティに対する応答は、このメソッドの呼出しの前に処理されます)。 この実装は、編集可能な状態や有効な状態が変更された場合に、テキスト・コンポーネントのバックグラウンドを更新します。- パラメータ:
evt
- プロパティ変更イベント
-
getPropertyPrefix
protected abstract String getPropertyPrefix()UIManagerを介してプロパティを参照するためのキーとして使用される名前を取得します。 この名前は、すべての標準テキスト・プロパティの接頭辞として使用されます。- 戻り値:
- 名前
-
installDefaults
protected void installDefaults()フォント、フォアグラウンド、バックグラウンド、キャレットの色、選択色、選択したテキストの色、無効なテキストの色、ボーダー、マージンなどのコンポーネント・プロパティを初期化します。 各プロパティは、その現在の値がNULLまたはUIResourceの場合に設定されます。 -
uninstallDefaults
protected void uninstallDefaults()null
に明示的にオーバーライドされていないコンポーネント・プロパティを設定します。 現在の値がUIResource
でなければ、プロパティはオーバーライドされたと判断されます。 -
installListeners
protected void installListeners()UIのリスナーをインストールします。 -
uninstallListeners
protected void uninstallListeners()UIのリスナーをアンインストールします。 -
installKeyboardActions
protected void installKeyboardActions()キーボード操作を登録します。 -
uninstallKeyboardActions
protected void uninstallKeyboardActions()キーボード操作の登録を解除します。 -
paintBackground
protected void paintBackground(Graphics g) ビューのバックグラウンドをペイントします。 このメソッドは、関連付けられたコンポーネントでisOpaque()がtrueの場合にだけ呼び出されます。 デフォルトは、コンポーネントのバックグラウンド・カラーをペイントすることです。- パラメータ:
g
- グラフィックス・コンテキスト
-
getComponent
protected final JTextComponent getComponent()このUI実装に関連付けられたテキスト・コンポーネントを取得します。 これは、UIがインストールされるまでnullになります。- 戻り値:
- エディタ・コンポーネント
-
modelChanged
protected void modelChanged()モデルの変更にフラグを立てます。 このメソッドは、モデルが変更されると呼び出されます。 関連付けられたモデルのデフォルト・ルート要素を表すように、ビュー階層を再構築するために実装されます。 -
setView
protected final void setView(View v) ビュー階層の現在のルートを設定し、invalidate()を呼び出します。 子コンポーネントがある場合、それらは削除されます(ビューに埋め込まれたコンポーネントから派生していると見なされます)。- パラメータ:
v
- ルート・ビュー
-
paintSafely
protected void paintSafely(Graphics g) このスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。 このメソッドは、後方から前方に向かってレンダリングしながら次のことを実行します。- コンポーネントが不透明とマークされている場合、バックグラウンドはコンポーネントの現在のバックグラウンド・カラーでペイントされる。
- ハイライト(存在する場合)がペイントされる。
- ビュー階層がペイントされる。
- キャレットがペイントされる。
- パラメータ:
g
- グラフィックス・コンテキスト
-
installUI
public void installUI(JComponent c) コンポーネントのUIをインストールします。 このメソッドは、次のことを実行します。- クライアント・プログラムによって不透明プロパティがまだ設定されていない場合に、関連付けられたコンポーネントを不透明に設定します。 これにより、コンポーネントのバックグラウンド・カラーがペイントされます。
-
関連付けられたコンポーネントにデフォルトのキャレットおよびハイライタをインストールします。 これらのプロパティは、現在の値が
null
またはUIResource
のインスタンスである場合にのみ設定されます。 - エディタおよびモデルに接続します。 モデルがない場合は、デフォルトのモデルを作成します。
- ビュー・ファクトリ、およびモデルを表すために使われるビュー階層を作成します。
- オーバーライド:
installUI
、クラスComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 関連項目:
-
uninstallUI
public void uninstallUI(JComponent c) コンポーネントのUIをアンインストールします。 このメソッドは、リスナーの削除、ハイライタのアンインストール、ビューの削除を行い、キーマップをnullに設定します。- オーバーライド:
uninstallUI
、クラスComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 関連項目:
-
update
public void update(Graphics g, JComponent c) スーパー・クラスが制御不可能な方法でバックグラウンドをペイントします(イメージをバックグラウンドにタイリングする場合があります)。 これが2度と発生しないように、このメソッドは単純にペイントするように再実装されます。注意:また、バックグラウンドのレンダリングではスーパークラスはスレッド・セーフではありませんが、デフォルトのレンダリングでは問題ではありません。
- オーバーライド:
update
、クラスComponentUI
- パラメータ:
g
- ペイント対象のGraphics
コンテキストc
- ペイントされるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある- 関連項目:
-
paint
public final void paint(Graphics g, JComponent c) インタフェースをペイントします。 このメソッドは、レンダリング時にこのスレッドのビューからモデルが変更されないことが保証された状態で、paintSafelyメソッドに送られます(関連付けられたモデルがAbstractDocumentから派生している場合)。 これにより、モデルは潜在的に非同期で更新されます。- オーバーライド:
paint
、クラスComponentUI
- パラメータ:
g
- グラフィックス・コンテキストc
- エディタ・コンポーネント- 関連項目:
-
getPreferredSize
public Dimension getPreferredSize(JComponent c) エディタ・コンポーネントの推奨サイズを取得します。 コンポーネントがこの要求を受け取る前にサイズが与えられている場合、そのサイズを反映するようにビュー階層のサイズを設定してから、ビュー階層の推奨サイズを要求します。 これにより、フォーマットされるビューを現在のコンポーネント・サイズにフォーマットしてから、要求に答えることができます。 ほかのビューは、現在フォーマットされているサイズを考慮せず、いずれの場合も同じ答えを出します。- オーバーライド:
getPreferredSize
、クラスComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 戻り値:
- サイズ
- 関連項目:
-
getMinimumSize
public Dimension getMinimumSize(JComponent c) エディタ・コンポーネントの最小サイズを取得します。- オーバーライド:
getMinimumSize
、クラスComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 戻り値:
- サイズ
- 関連項目:
-
getMaximumSize
public Dimension getMaximumSize(JComponent c) エディタ・コンポーネントの最大サイズを取得します。- オーバーライド:
getMaximumSize
、クラスComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 戻り値:
- サイズ
- 関連項目:
-
getVisibleEditorRect
protected Rectangle getVisibleEditorRect()ルートViewを渡す割り当てを取得します。 従来のイベントの不適切なセットが原因で、このメソッドには不適切な名前が付いています。 返されるRectangleは可視性には関係がありません。 この変換を計算するには、コンポーネントはゼロでない正のサイズを持つ必要があります。- 戻り値:
- ルート・ビューのバウンディング・ボックス
-
modelToView
@Deprecated(since="9") public Rectangle modelToView(JTextComponent tc, int pos) throws BadLocationException 非推奨。モデル内の指定された位置を、ビュー座標体系内の場所に変換します。 この変換を計算するには、コンポーネントはゼロでない正のサイズを持つ必要があります。- 定義:
modelToView
、クラスTextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントpos
- 変換対象のモデル内でのローカル位置>= 0- 戻り値:
- 矩形としての座標、モデルがペイントされていない場合はnull
- 例外:
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合- 関連項目:
-
modelToView
@Deprecated(since="9") public Rectangle modelToView(JTextComponent tc, int pos, Position.Bias bias) throws BadLocationException 非推奨。モデル内の指定された位置を、ビュー座標体系内の場所に変換します。 この変換を計算するには、コンポーネントはゼロでない正のサイズを持つ必要があります。- 定義:
modelToView
、クラスTextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントpos
- 変換対象のモデル内でのローカル位置>= 0bias
- ポジションのバイアス- 戻り値:
- 矩形としての座標、モデルがペイントされていない場合はnull
- 例外:
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合- 関連項目:
-
viewToModel
@Deprecated(since="9") public int viewToModel(JTextComponent tc, Point pt) ビュー座標体系内の指定された場所を、モデル内のもっとも近い代表的な位置に変換します。 この変換を計算するには、コンポーネントはゼロでない正のサイズを持つ必要があります。- 定義:
viewToModel
、クラスTextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントpt
- 変換対象のビューの座標系での位置。 この場合の座標系は、マウス・イベントと同じ座標系であるべきである。- 戻り値:
- ドキュメントの先頭からのオフセットで、0以上。ペイントされていない場合は -1
- 関連項目:
-
viewToModel
@Deprecated(since="9") public int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn) ビュー座標体系内の指定された場所を、モデル内のもっとも近い代表的な位置に変換します。 この変換を計算するには、コンポーネントはゼロでない正のサイズを持つ必要があります。- 定義:
viewToModel
、クラスTextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントpt
- 変換対象のビューの座標系での位置。 この場合の座標系は、マウス・イベントと同じ座標系であるべきである。biasReturn
- 指定された点がモデル内の前の文字と次の文字のどちらに近いのかを示すため、このメソッドによって書き込まれる- 戻り値:
- ドキュメントの先頭からのオフセットで、0以上。コンポーネントがまだ正のサイズを持っていない場合は -1。
- 関連項目:
-
getNextVisualPositionFrom
public int getNextVisualPositionFrom(JTextComponent t, int pos, Position.Bias b, int direction, Position.Bias[] biasRet) throws BadLocationException キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。 ビューによっては、可視ではないか、モデル内と同じ順序でないか、またはモデル内の一部の位置へのアクセスを許可しない場合があります。- 定義:
getNextVisualPositionFrom
、クラスTextUI
- パラメータ:
t
- このUIがインストールされているテキスト・コンポーネントpos
- 変換対象の位置>= 0b
- 位置のバイアスdirection
- 現在位置からの方向。キーボードに通常見られる矢印キーと見なすことができる。 SwingConstants.WEST、SwingConstants.EAST、SwingConstants.NORTHまたはSwingConstants.SOUTHの場合がありますbiasRet
- 返される位置のバイアスを含む配列- 戻り値:
- 次の可視の位置をもっともよく表す、モデル内の位置
- 例外:
BadLocationException
- ドキュメント・モデル内の不適切なロケーション
-
damageRange
public void damageRange(JTextComponent tc, int p0, int p1) モデル内の指定された一部分に対応するビューの部分が描画し直されるようにします。 ビューが現在ペイントされていない場合は何も行われません。- 定義:
damageRange
、クラスTextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントp0
- 範囲の始点>= 0p1
- 範囲の終点>= p0- 関連項目:
-
damageRange
public void damageRange(JTextComponent t, int p0, int p1, Position.Bias p0Bias, Position.Bias p1Bias) モデル内の指定された一部分に対応するビューの部分が描画し直されるようにします。- 定義:
damageRange
、クラスTextUI
- パラメータ:
p0
- 範囲の始点>= 0p1
- 範囲の終点>= p0t
- このUIがインストールされているテキスト・コンポーネントp0Bias
- 前の文字または次の文字に向かう、最初の文字位置のバイアスp1Bias
- 前の文字または次の文字に向かう第2の文字位置の偏り
-
getEditorKit
public EditorKit getEditorKit(JTextComponent tc) UIのEditorKitを取得します。- 定義:
getEditorKit
、クラスTextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネント- 戻り値:
- エディタ機能
- 関連項目:
-
getRootView
public View getRootView(JTextComponent tc) モデルが空間的にどのように表現されているかを判定するためにトラバースすることのできる、関連したテキスト・コンポーネント(すなわち階層のルート)の割り当てを持つViewを取得します。警告:ビュー階層はルート・ビューからトラバースでき、その他の操作も実行できます。 このように行われたことは、TextUIを通じた単純なメソッド呼出しのように保護することができません。 したがって、並行処理が存在する場合には、このメソッドを呼び出すロジックによって、適切な処理を準備する必要があります。
- 定義:
getRootView
、クラスTextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネント- 戻り値:
- ビュー
- 関連項目:
-
getToolTipText
public String getToolTipText(JTextComponent t, Point pt) 渡された位置でツール・チップとして使用される文字列を返します。 このメソッドをルートViewに転送します。- オーバーライド:
getToolTipText
、クラスTextUI
- パラメータ:
t
- このUIがインストールされているテキスト・コンポーネントpt
- ツールチップを取得するロケーションを指定するPoint
- 戻り値:
- ツールチップを含む
String
- 導入されたバージョン:
- 1.4
- 関連項目:
-
create
要素のビューを作成します。 ビューを作成するファクトリをサブクラスが直接実装する場合は、このメソッドを実装し直すようにしてください。 デフォルトでは、要素を表すことができないことを示すnullを返します。- 定義:
create
、インタフェースViewFactory
- パラメータ:
elem
- 要素- 戻り値:
- ビュー
- 関連項目:
-
create
要素のビューを作成します。 ビューを作成するファクトリをサブクラスが直接実装する場合は、このメソッドを実装し直すようにしてください。 デフォルトでは、要素の部分を表現できないことを示すnullを返します。- パラメータ:
elem
- 要素p0
- 開始オフセット(>= 0)p1
- 終了オフセット(>= p0)- 戻り値:
- ビュー
-
TextUI.modelToView2D(JTextComponent, int, Position.Bias)
に置き換えられました