Java プラットフォーム 1.2

javax.swing.plaf.basic
クラス BasicTextUI

java.lang.Object
  |
  +--javax.swing.plaf.ComponentUI
        |
        +--javax.swing.plaf.TextUI
              |
              +--javax.swing.plaf.basic.BasicTextUI
直接の既知のサブクラス:
BasicEditorPaneUI, BasicTextAreaUI, BasicTextFieldUI, DefaultTextUI

public abstract class BasicTextUI
extends TextUI
implements ViewFactory

テキストコンポーネントの Look & Feel の基礎となるクラスです。このクラスは、JTextComponent の拡張の Look & Feel を作成するときに便利な、エディタのビューおよびコントローラの基本的なサービスを提供します。

多くの場合、状態は関連付けられている JTextComponent にバウンドプロパティとして保持されており、UI では各プロパティの既定値がインストールされます。このデフォルトの動作により、すべてのプロパティに対して値がインストールされますが、通常、Look & Feel の実装ではさらに多くのことが行われます。通常、Look & Feel の実装により、少なくともキーバインディングがインストールされます。

定義する必要がある重要なメソッドは、UIManager から既定値を取り出すために使われるキーの基礎である getPropertyPrefix() メソッドです。取得した文字列は、名前の特定の Look & Feel 部分 (Metal、Motif など) のない TextUI の型 (TextField、TextArea など) を反映します。

モデルのビューを構築するには、次に示す方法のどれかを使います。

  1. 1 つの方法は、単純に UI で ViewFactory インタフェースを定義し直すことです。デフォルトでは、この UI はそれ自体が View の実装のファクトリとして動作します。これは、単純なファクトリに便利です。この方法を実行するには、create(javax.swing.text.Element) メソッドを実装し直します。
  2. さらに複雑なドキュメントを作成する場合の一般的な方法は、EditorKit の実装がファクトリを返すようにすることです。EditorKit はあるドキュメントを維持するために必要なものをすべて結び付けるので、通常、ファクトリは重要な役割を担います。この場合、ファクトリは EditorKit の実装によって作成されます。
  3. あまり一般的ではない方法として、UI の実装にファクトリの別のオブジェクトを作成させる方法があります。そのためには、ファクトリを返すように #createViewFactory メソッドを実装し直す必要があります。

警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。


内部クラスの概要
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 を取得します。
protected  Rectangle getVisibleEditorRect()
          エディタの画面上での可視部分を取得します。
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 をアンインストールします。
 int viewToModel(JTextComponent tc, Point pt)
          ビューの座標系内の指定された位置をモデル内のもっとも近い位置に変換します。
 int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn)
          ビューの座標系内の指定された位置をモデル内のもっとも近い位置に変換します。
 
クラス javax.swing.plaf.ComponentUI から継承したメソッド
contains, createUI, getAccessibleChild, getAccessibleChildrenCount, update
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

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(), installUI(javax.swing.JComponent)

uninstallDefaults

protected void uninstallDefaults()
明示的にオーバーライドされていないコンポーネントのプロパティを null に設定します。現在の値が UIResource でない場合に、プロパティはオーバーライドされていると見なされます。
関連項目:
installDefaults(), uninstallUI(javax.swing.JComponent)

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)
このスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。このメソッドは、後方から前方に向かって描画しながら次のことを実行します。
  1. コンポーネントが不透明とマークされている場合、バックグラウンドはコンポーネントの現在のバックグラウンドカラーでペイントされる
  2. ハイライト (存在する場合) がペイントされる
  3. ビュー階層がペイントされる
  4. キャレットがペイントされる
パラメータ:
g - グラフィックスコンテキスト

installUI

public void installUI(JComponent c)
コンポーネントの UI をインストールします。このメソッドは、次のことを実行します。
  1. 関連付けられているコンポーネントを不透明に設定する。これはもっとも一般的な場合であり、サブクラスでまたは JTextComponent で直接簡単に変更できる。これにより、コンポーネントのバックグラウンドカラーがペイントされる
  2. 関連付けられているコンポーネントにデフォルトのキャレットおよびハイライタをインストールする
  3. エディタおよびモデルに接続する。モデルがない場合は、デフォルトのモデルを作成する
  4. モデルを表すために使われるビューファクトリおよびビュー階層を作成する
パラメータ:
c - エディタコンポーネント
オーバーライド:
クラス ComponentUI 内の installUI
関連項目:
ComponentUI.installUI(javax.swing.JComponent)

uninstallUI

public void uninstallUI(JComponent c)
コンポーネントの UI をアンインストールします。このメソッドは、リスナーの削除、ハイライタのアンインストール、ビューの削除を行い、キーマップを無効にします。
パラメータ:
c - エディタコンポーネント
オーバーライド:
クラス ComponentUI 内の uninstallUI
関連項目:
ComponentUI.uninstallUI(javax.swing.JComponent)

paint

public final void paint(Graphics g,
                        JComponent c)
インタフェースをペイントします。このメソッドは、描画時にこのスレッドのビューからモデルが変更されないという保証の下に SafePainter.render() に送られます。これにより、モデルが非同期で更新されるようにします。
パラメータ:
g - グラフィックスコンテキスト
c - エディタコンポーネント
オーバーライド:
クラス ComponentUI 内の paint

getPreferredSize

public Dimension getPreferredSize(JComponent c)
エディタコンポーネントの適切なサイズを取得します。この要求の受信前にコンポーネントのサイズが指定されている場合、ビュー階層の適切なサイズを要求する前に、コンポーネントのサイズを反映するようにビュー階層のサイズが設定されます。これにより、書式付きビューは、要求の応答前に現在のコンポーネントのサイズに書式設定されます。ほかのビューは、現在の書式設定されているサイズを無視し、どちらの場合でも同じ応答を返します。
パラメータ:
c - エディタコンポーネント
戻り値:
サイズ
オーバーライド:
クラス ComponentUI 内の getPreferredSize

getMinimumSize

public Dimension getMinimumSize(JComponent c)
エディタコンポーネントの最小サイズを取得します。
パラメータ:
c - エディタコンポーネント
戻り値:
サイズ
オーバーライド:
クラス ComponentUI 内の getMinimumSize

getMaximumSize

public Dimension getMaximumSize(JComponent c)
エディタコンポーネントの最大サイズを取得します。
パラメータ:
c - エディタコンポーネント
戻り値:
サイズ
オーバーライド:
クラス ComponentUI 内の getMaximumSize

getVisibleEditorRect

protected Rectangle getVisibleEditorRect()
エディタの画面上での可視部分を取得します。
戻り値:
可視部分のバウンディングボックス

modelToView

public Rectangle modelToView(JTextComponent tc,
                             int pos)
                      throws BadLocationException
モデル内の指定された位置をビューの座標系内の位置に変換します。
パラメータ:
tc - この UI がインストールされているテキストコンポーネント
pos - 変換対象のモデル内のローカル位置 >= 0
戻り値:
矩形の座標。モデルがペイントされていない場合は null
例外:
BadLocationException - 指定された位置が、関連付けられているドキュメントの有効な位置を表さない場合
オーバーライド:
クラス TextUI 内の modelToView
関連項目:
TextUI.modelToView(javax.swing.text.JTextComponent, int)

modelToView

public Rectangle modelToView(JTextComponent tc,
                             int pos,
                             Position.Bias bias)
                      throws BadLocationException
モデル内の指定された位置をビューの座標系内の位置に変換します。
パラメータ:
tc - この UI がインストールされているテキストコンポーネント
pos - 変換対象のモデル内のローカル位置 >= 0
戻り値:
矩形の座標。モデルがペイントされていない場合は null
例外:
BadLocationException - 指定された位置が、関連付けられているドキュメントの有効な位置を表さない場合
オーバーライド:
クラス TextUI 内の modelToView
関連項目:
TextUI.modelToView(javax.swing.text.JTextComponent, int)

viewToModel

public int viewToModel(JTextComponent tc,
                       Point pt)
ビューの座標系内の指定された位置をモデル内のもっとも近い位置に変換します。
パラメータ:
tc - この UI がインストールされているテキストコンポーネント
pt - 変換対象のビュー内の位置。マウスイベントと同じ座標系でなければならない
戻り値:
ドキュメントの先頭からのオフセット >= 0。ペイントされていない場合は -1
オーバーライド:
クラス TextUI 内の viewToModel
関連項目:
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)

viewToModel

public int viewToModel(JTextComponent tc,
                       Point pt,
                       Position.Bias[] biasReturn)
ビューの座標系内の指定された位置をモデル内のもっとも近い位置に変換します。
パラメータ:
tc - この UI がインストールされているテキストコンポーネント
pt - 変換対象のビュー内の位置。マウスイベントと同じ座標系でなければならない
戻り値:
ドキュメントの先頭からのオフセット >= 0。ペイントされていない場合は -1
オーバーライド:
クラス TextUI 内の viewToModel
関連項目:
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)

getNextVisualPositionFrom

public int getNextVisualPositionFrom(JTextComponent t,
                                     int pos,
                                     Position.Bias b,
                                     int direction,
                                     Position.Bias[] biasRet)
                              throws BadLocationException
キャレットが配置される可能性のある、次に視覚的に表示されるモデルの位置を決定する方法を提供します。ビューによっては、可視でなかったり、モデル内と同じ順序でなかったり、モデル内の位置へのアクセスを許可しないことがあります。
パラメータ:
pos - 変換される位置 >= 0
b - 描画するために割り当てられた領域
direction - キーボード上の矢印キーと同様の、現在の位置からの方向。SwingConstants.WEST、SwingConstants.EAST、SwingConstants.NORTH、または SwingConstants.SOUTH のどれか
戻り値:
次の位置の視覚的な位置をもっとも適切に表すモデル内の位置
例外:
BadLocationException -  
IllegalArgumentException - 方向が無効な場合
オーバーライド:
クラス TextUI 内の getNextVisualPositionFrom

damageRange

public void damageRange(JTextComponent tc,
                        int p0,
                        int p1)
モデルの指定された部分に対応するビューの部分がペイントし直されます。ビューが現在ペイントされていない場合は何も行われません。
パラメータ:
tc - この UI がインストールされているテキストコンポーネント
p0 - 範囲の始点 >= 0
p1 - 範囲の終点 >= p0
オーバーライド:
クラス TextUI 内の damageRange
関連項目:
TextUI.damageRange(javax.swing.text.JTextComponent, int, int)

damageRange

public void damageRange(JTextComponent t,
                        int p0,
                        int p1,
                        Position.Bias p0Bias,
                        Position.Bias p1Bias)
モデルの指定された部分に対応するビューの部分がペイントし直されます。
パラメータ:
p0 - 範囲の始点 >= 0
p1 - 範囲の終点 >= p0
オーバーライド:
クラス TextUI 内の damageRange

getEditorKit

public EditorKit getEditorKit(JTextComponent tc)
UI の EditorKit を取得します。
パラメータ:
tc - この UI がインストールされているテキストコンポーネント
戻り値:
エディタ機能
オーバーライド:
クラス TextUI 内の getEditorKit
関連項目:
TextUI.getEditorKit(javax.swing.text.JTextComponent)

getRootView

public View getRootView(JTextComponent tc)
モデルの空間的な表現方法を判断するために移動できる、関連付けられているテキストコンポーネント (つまり階層のルート) の割り当てを持つ View を取得します。
パラメータ:
tc - この UI がインストールされているテキストコンポーネント
戻り値:
ビュー
オーバーライド:
クラス TextUI 内の getRootView
関連項目:
TextUI.getRootView(javax.swing.text.JTextComponent)

create

public View create(Element elem)
要素のビューを作成します。ビューを作成するファクトリをサブクラスに直接実装するには、このメソッドを実装し直す必要があります。デフォルトでは、要素を表すことができないことを示す null を返します。
定義:
インタフェース ViewFactory 内の create
パラメータ:
elem - 要素
戻り値:
ビュー

create

public View create(Element elem,
                   int p0,
                   int p1)
要素のビューを作成します。ビューを作成するファクトリをサブクラスに直接実装するには、このメソッドを実装し直す必要があります。デフォルトでは、要素の部分を表現できないことを示す null を返します。
パラメータ:
elem - 要素
p0 - 開始オフセット >= 0
p1 - 終了オフセット >= p0
戻り値:
ビュー

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.