クラスBasicTextUI
- すべての実装されたインタフェース:
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テキスト・コンポーネントに使用するキーマップを作成し、それに必要なバインディングをインストールします。voiddamageRange(JTextComponent tc, int p0, int p1) モデル内の指定された一部分に対応するビューの部分が描画し直されるようにします。voiddamageRange(JTextComponent t, int p0, int p1, Position.Bias p0Bias, Position.Bias p1Bias) モデル内の指定された一部分に対応するビューの部分が描画し直されるようにします。protected final JTextComponentこのUI実装に関連付けられたテキスト・コンポーネントを取得します。UIのEditorKitを取得します。protected StringこのUIにデフォルトでインストールまたは使用されるキーマップの名前を取得します。エディタ・コンポーネントの最大サイズを取得します。エディタ・コンポーネントの最小サイズを取得します。intgetNextVisualPositionFrom(JTextComponent t, int pos, Position.Bias b, int direction, Position.Bias[] biasRet) キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。エディタ・コンポーネントの推奨サイズを取得します。protected abstract StringUIManagerを介してプロパティを参照するためのキーとして使用される名前を取得します。モデルが空間的にどのように表現されているかを判定するためにトラバースすることのできる、関連したテキスト・コンポーネント(すなわち階層のルート)の割り当てを持つViewを取得します。getToolTipText(JTextComponent t, Point pt) 渡された位置でツール・チップとして使用される文字列を返します。protected RectangleルートViewを渡す割り当てを取得します。protected voidフォント、前景、バックグラウンド、キャレットの色、選択色、選択したテキストの色、無効なテキストの色、ボーダー、マージンなどのコンポーネント・プロパティを初期化します。protected voidキーボード操作を登録します。protected voidUIのリスナーをインストールします。voidコンポーネントのUIをインストールします。protected voidモデルの変更にフラグを立てます。modelToView(JTextComponent tc, int pos) 非推奨。modelToView(JTextComponent tc, int pos, Position.Bias bias) 非推奨。final voidpaint(Graphics g, JComponent c) インタフェースをペイントします。protected voidビューのバックグラウンドをペイントします。protected voidこのスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。protected voidこのメソッドは、関連付けられたJTextComponentでバウンド・プロパティが変更されたときに呼び出されます。protected final voidビュー階層の現在のルートを設定し、invalidate()を呼び出します。protected voidnullに明示的にオーバーライドされていないコンポーネント・プロパティを設定します。protected voidキーボード操作の登録を解除します。protected voidUIのリスナーをアンインストールします。voidコンポーネントのUIをアンインストールします。voidupdate(Graphics g, JComponent c) スーパー・クラスが制御不可能な方法でバックグラウンドをペイントします(イメージをバックグラウンドにタイリングする場合があります)。intviewToModel(JTextComponent tc, Point pt) intviewToModel(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- パラメータ:
t- このUIがインストールされているテキスト・コンポーネントp0- 範囲の始点>= 0p1- 範囲の終点>= p0p0Bias- 最初の文字位置の、前の文字または次の文字に対するバイアス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
-
TextUI.modelToView2D(JTextComponent, int, Position.Bias)に置き換えられました