- すべての実装されたインタフェース:
ViewFactory
- 直系の既知のサブクラス:
BasicEditorPaneUI
,BasicTextAreaUI
,BasicTextFieldUI
,DefaultTextUI
public abstract class BasicTextUI extends TextUI implements ViewFactory
テキスト・コンポーネントのLook & Feelの基礎です。 このクラスは、JTextComponent
の拡張のためのLook & Feelを作成するときに便利な、エディタ・ビューおよびコントローラの基本的なサービスを提供します。
ほとんどの状態は関連付けられたJTextComponent
にバウンド・プロパティとして保持されており、UIはさまざまなプロパティのデフォルト値をインストールします。 このデフォルトは、すべてのプロパティのために何かをインストールします。 ただし通常は、LAF実装が追加の作業を行います。 少なくとも、LAFは一般的にキー・バインディングをインストールします。
また、JTextComponentに関連付けられたDocument
がAbstractDocument
のサブクラスである場合、このクラスはいくつかの並行サポートも提供します。 ViewまたはView階層へのアクセスは、モデルを変更するスレッドとSwingイベント・スレッド(レンダリング、モデルとビュー座標変換などを行う)との間で直列化されます。 ルート・ビューにアクセスするときは、最初にAbstractDocumentで読取りロックを獲得して、そのロックをfinallyブロックで解放するようにしてください。
定義する必要がある重要なメソッドは、UIManagerからデフォルトを取り出すために使用されるキーの基礎として使用される、getPropertyPrefix()
メソッドです。 これらの文字列は、 名前の特定のLAF部分(Metal、Motifなど)のない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
BasicTextUI.BasicCaret
インタフェースCaret
のデフォルト実装。static class
BasicTextUI.BasicHighlighter
インタフェースHighlighter
のデフォルト実装。 -
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 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)
エディタ・コンポーネントの最小サイズを取得します。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.TextUIで宣言されたメソッド
getNextVisualPositionFrom, 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[]
になります。- 戻り値:
- キーマップ
- 関連項目:
getKeymapName()
,JTextComponent
-
propertyChange
protected void propertyChange(PropertyChangeEvent evt)このメソッドは、関連付けられたJTextComponentでバウンド・プロパティが変更されたときに呼び出されます。 これは、UIがJTextComponentのサブクラスのバウンド・プロパティをどのように表示するかを反映するためにUIの実装により変更できるフックです。 このメソッドは、実装されても何も実行しません(JTextComponent自体でのプロパティに対する応答は、このメソッドの呼出しの前に処理されます)。 この実装は、編集可能な状態や有効な状態が変更された場合に、テキスト・コンポーネントのバックグラウンドを更新します。- パラメータ:
evt
- プロパティ変更イベント
-
getPropertyPrefix
protected abstract String getPropertyPrefix()UIManagerを介してプロパティを参照するためのキーとして使用される名前を取得します。 この名前は、すべての標準テキスト・プロパティの接頭辞として使用されます。- 戻り値:
- 名前
-
installDefaults
protected void installDefaults()フォント、フォアグラウンド、バックグラウンド、キャレットの色、選択の色、選択されたテキストの色、無効になったテキストの色、ボーダーの色などのコンポーネント・プロパティを初期化します。 フォント、フォアグラウンド、およびバックグラウンド・プロパティは現在の値がnullまたはUIResourceの場合にだけ設定され、ほかのプロパティは現在の値がnullの場合に設定されます。 -
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
- エディタ・コンポーネント- 関連項目:
ComponentUI.installUI(javax.swing.JComponent)
-
uninstallUI
public void uninstallUI(JComponent c)コンポーネントのUIをアンインストールします。 このメソッドは、リスナーの削除、ハイライタのアンインストール、ビューの削除を行い、キーマップをnullに設定します。- オーバーライド:
uninstallUI
、クラス:ComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 関連項目:
ComponentUI.uninstallUI(javax.swing.JComponent)
-
update
public void update(Graphics g, JComponent c)スーパー・クラスが制御不可能な方法でバックグラウンドをペイントします(イメージをバックグラウンドにタイリングする場合があります)。 これが2度と発生しないように、このメソッドは単純にペイントするように再実装されます。注意:また、バックグラウンドのレンダリングではスーパークラスはスレッド・セーフではありませんが、デフォルトのレンダリングでは問題ではありません。
- オーバーライド:
update
、クラス:ComponentUI
- パラメータ:
g
- ペイント対象のGraphics
コンテキストc
- ペイントされるコンポーネント。この引数は通常無視されるが、UIオブジェクトがステートレスで、複数のコンポーネントで共有されている場合は使用されることがある- 関連項目:
ComponentUI.paint(java.awt.Graphics, javax.swing.JComponent)
,JComponent.paintComponent(java.awt.Graphics)
-
paint
public final void paint(Graphics g, JComponent c)インタフェースをペイントします。 このメソッドは、レンダリング時にこのスレッドのビューからモデルが変更されないことが保証された状態で、paintSafelyメソッドに送られます(関連付けられたモデルがAbstractDocumentから派生している場合)。 これにより、モデルは潜在的に非同期で更新されます。- オーバーライド:
paint
、クラス:ComponentUI
- パラメータ:
g
- グラフィックス・コンテキストc
- エディタ・コンポーネント- 関連項目:
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
-
getPreferredSize
public Dimension getPreferredSize(JComponent c)エディタ・コンポーネントの推奨サイズを取得します。 コンポーネントがこの要求を受け取る前にサイズが与えられている場合、そのサイズを反映するようにビュー階層のサイズを設定してから、ビュー階層の推奨サイズを要求します。 これにより、フォーマットされるビューを現在のコンポーネント・サイズにフォーマットしてから、要求に答えることができます。 ほかのビューは、現在フォーマットされているサイズを考慮せず、いずれの場合も同じ答えを出します。- オーバーライド:
getPreferredSize
、クラス:ComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 戻り値:
- サイズ
- 関連項目:
JComponent.getPreferredSize()
,LayoutManager.preferredLayoutSize(java.awt.Container)
-
getMinimumSize
public Dimension getMinimumSize(JComponent c)エディタ・コンポーネントの最小サイズを取得します。- オーバーライド:
getMinimumSize
、クラス:ComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 戻り値:
- サイズ
- 関連項目:
JComponent.getMinimumSize()
,LayoutManager.minimumLayoutSize(java.awt.Container)
,ComponentUI.getPreferredSize(javax.swing.JComponent)
-
getMaximumSize
public Dimension getMaximumSize(JComponent c)エディタ・コンポーネントの最大サイズを取得します。- オーバーライド:
getMaximumSize
、クラス:ComponentUI
- パラメータ:
c
- エディタ・コンポーネント- 戻り値:
- サイズ
- 関連項目:
JComponent.getMaximumSize()
,LayoutManager2.maximumLayoutSize(java.awt.Container)
-
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
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合- 関連項目:
TextUI.modelToView(javax.swing.text.JTextComponent, int)
-
modelToView
@Deprecated(since="9")public Rectangle modelToView(JTextComponent tc, int pos, Position.Bias bias) throws BadLocationException非推奨。モデル内の指定された位置を、ビュー座標体系内の場所に変換します。 この変換を計算するには、コンポーネントはゼロでない正のサイズを持つ必要があります。- 定義:
modelToView
、クラス:TextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントpos
- 変換対象のモデル内でのローカル位置>= 0bias
- ポジションのバイアス- 戻り値:
- 矩形としての座標、モデルがペイントされていない場合はnull
- 例外:
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合- 関連項目:
TextUI.modelToView(javax.swing.text.JTextComponent, int)
-
viewToModel
@Deprecated(since="9")public int viewToModel(JTextComponent tc, Point pt)ビュー座標体系内の指定された場所を、モデル内のもっとも近い代表的な位置に変換します。 この変換を計算するには、コンポーネントはゼロでない正のサイズを持つ必要があります。- 定義:
viewToModel
、クラス:TextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントpt
- 変換対象のビューの座標系での位置。 この場合の座標系は、マウス・イベントと同じ座標系であるべきである。- 戻り値:
- ドキュメントの先頭からのオフセットで、0以上。ペイントされていない場合は -1
- 関連項目:
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)
-
viewToModel
@Deprecated(since="9")public int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn)ビュー座標体系内の指定された場所を、モデル内のもっとも近い代表的な位置に変換します。 この変換を計算するには、コンポーネントはゼロでない正のサイズを持つ必要があります。- 定義:
viewToModel
、クラス:TextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントpt
- 変換対象のビューの座標系での位置。 この場合の座標系は、マウス・イベントと同じ座標系であるべきである。biasReturn
- 指定された点がモデル内の前の文字と次の文字のどちらに近いのかを示すため、このメソッドによって書き込まれる- 戻り値:
- ドキュメントの先頭からのオフセットで、0以上。コンポーネントがまだ正のサイズを持っていない場合は -1。
- 関連項目:
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)
-
damageRange
public void damageRange(JTextComponent tc, int p0, int p1)モデル内の指定された一部分に対応するビューの部分が描画し直されるようにします。 ビューが現在ペイントされていない場合は何も行われません。- 定義:
damageRange
、クラス:TextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネントp0
- 範囲の始点>= 0p1
- 範囲の終点>= p0- 関連項目:
TextUI.damageRange(javax.swing.text.JTextComponent, int, int)
-
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がインストールされているテキスト・コンポーネント- 戻り値:
- エディタ機能
- 関連項目:
TextUI.getEditorKit(javax.swing.text.JTextComponent)
-
getRootView
public View getRootView(JTextComponent tc)モデルが空間的にどのように表現されているかを判定するためにトラバースすることのできる、関連したテキスト・コンポーネント(すなわち階層のルート)の割り当てを持つViewを取得します。警告:ビュー階層はルート・ビューからトラバースでき、その他の操作も実行できます。 このように行われたことは、TextUIを通じた単純なメソッド呼出しのように保護することができません。 したがって、並行処理が存在する場合には、このメソッドを呼び出すロジックによって、適切な処理を準備する必要があります。
- 定義:
getRootView
、クラス:TextUI
- パラメータ:
tc
- このUIがインストールされているテキスト・コンポーネント- 戻り値:
- ビュー
- 関連項目:
TextUI.getRootView(javax.swing.text.JTextComponent)
-
getToolTipText
public String getToolTipText(JTextComponent t, Point pt)渡された位置でツール・チップとして使用される文字列を返します。 このメソッドをルートViewに転送します。- オーバーライド:
getToolTipText
、クラス:TextUI
- パラメータ:
t
- このUIがインストールされているテキスト・コンポーネントpt
- ツールチップを取得するロケーションを指定するPoint
- 戻り値:
- ツールチップを含む
String
- 導入されたバージョン:
- 1.4
- 関連項目:
JTextComponent.getToolTipText(java.awt.event.MouseEvent)
,View.getToolTipText(float, float, java.awt.Shape)
-
create
要素のビューを作成します。 ビューを作成するファクトリをサブクラスが直接実装する場合は、このメソッドを実装し直すようにしてください。 デフォルトでは、要素を表すことができないことを示すnullを返します。- 定義:
create
、インタフェース:ViewFactory
- パラメータ:
elem
- 要素- 戻り値:
- ビュー
- 関連項目:
View
-
create
要素のビューを作成します。 ビューを作成するファクトリをサブクラスが直接実装する場合は、このメソッドを実装し直すようにしてください。 デフォルトでは、要素の部分を表現できないことを示すnullを返します。- パラメータ:
elem
- 要素p0
- 開始オフセット(>= 0)p1
- 終了オフセット(>= p0)- 戻り値:
- ビュー
-
TextUI.modelToView2D(JTextComponent, int, Position.Bias)
に置き換えられました