JavaTM 2
Platform
Std. Ed. v1.4.0

javax.swing.text
クラス ComponentView

java.lang.Object
  |
  +--javax.swing.text.View
        |
        +--javax.swing.text.ComponentView
すべての実装インタフェース:
SwingConstants
直系の既知のサブクラス:
FormView, ObjectView

public class ComponentView
extends View

ビューのインタフェースを実装するコンポーネントデコレータです。要素の全体が、コンポーネントの表示に使用されます。表示のみの View の実装から対話型の軽量コンポーネントへのゲートウェイとして動作し、コンポーネントを View 階層に埋め込めるようにします。

コンポーネントは、Component.getAlignmentY によって返された値に従って、テキストのベースラインに相対的に配置されます。Swing コンポーネントの場合、この値はメソッド JComponent.setAlignmentY を使用して簡単に設定できます。たとえば、値を 0.75 に設定すると、コンポーネントの 75 パーセントがベースラインの上に、コンポーネントの 25 パーセントがベースラインの下になります。

このクラス実装により、すべてのコンポーネントアクセスがイベントスレッド上で確実に行われ、複数スレッドが存在する場合でも (つまり、モデル変更の非同期通知からなど) 適切に動作する必要のある処理が追加で実行されます。

使用されるコンポーネントは、createComponent メソッドの戻り値で決定されます。このメソッドのデフォルトの実装では、(StyleConstants.getComponent を呼び出すことで) 要素の属性として保持されているコンポーネントが返されます。この動作には、複数のコンポーネント (すなわち共有モデル) では使用できないという制限があります。サブクラスでは、createComponent を実装することでこの制約を取り消し、属性に含まれているある種の仕様に基づいたコンポーネントを実際に作成できます。html パッケージの ObjectView クラスは、共有モデルの複数コンポーネントビューをサポートする ComponentView の実装の例です。


フィールドの概要
 
クラス javax.swing.text.View から継承したフィールド
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
 
インタフェース javax.swing.SwingConstants から継承したフィールド
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
コンストラクタの概要
ComponentView(Element elem)
          新しい ComponentView オブジェクトを作成します。
 
メソッドの概要
protected  Component createComponent()
          このビューに関連したコンポーネントを作成します。
 float getAlignment(int axis)
          ビューの望ましい整列を、軸に沿って決定します。
 Component getComponent()
          ビューに関連したコンポーネントを取り出します。
 float getMaximumSpan(int axis)
          ビューの最大スパンを、軸に沿って決定します。
 float getMinimumSpan(int axis)
          ビューの最小のスパンを、軸に沿って決定します。
 float getPreferredSpan(int axis)
          ビューの望ましいスパンを、軸に沿って決定します。
 Shape modelToView(int pos, Shape a, Position.Bias b)
          モデルの座標空間から、ビューの座標空間へのマッピングを提供します。
 void paint(Graphics g, Shape a)
          実際の描画の動作は、コンポーネントがその親コンテナ (このビューを収容するコンテナ) との間にある関連性から発生します。
 void setParent(View p)
          子ビューの親を設定します。
 int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
          ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
 
クラス javax.swing.text.View から継承したメソッド
append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, removeUpdate, replace, setSize, updateChildren, updateLayout, viewToModel
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

ComponentView

public ComponentView(Element elem)
新しい ComponentView オブジェクトを作成します。

パラメータ:
elem - デコレートされる要素
メソッドの詳細

createComponent

protected Component createComponent()
このビューに関連したコンポーネントを作成します。このメソッドは、新しいコンポーネントが必要と判断されたときに呼び出されます。setParent が呼び出されたとき、あるいは属性の変更が通知された結果、このメソッドが呼び出されます。


getComponent

public final Component getComponent()
ビューに関連したコンポーネントを取り出します。


paint

public void paint(Graphics g,
                  Shape a)
実際の描画の動作は、コンポーネントがその親コンテナ (このビューを収容するコンテナ) との間にある関連性から発生します。実装されていても何も行いません。

定義:
クラス View 内の paint
パラメータ:
g - グラフィックスコンテキスト
a - 形状
関連項目:
View.paint(java.awt.Graphics, java.awt.Shape)

getPreferredSpan

public float getPreferredSpan(int axis)
ビューの望ましいスパンを、軸に沿って決定します。このメソッドは、指定された軸に沿って、Component.getPreferredSize によって返された値を返すように実装されています。

定義:
クラス View 内の getPreferredSpan
パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ビューの描画対象のスパン >= 0。通常、ビューは返されたスパン内に描画されることになるが、保証はない。親はビューのサイズ変更や分割を行う可能性がある
例外:
IllegalArgumentException - 軸が無効な場合
関連項目:
View.getPreferredSpan(int)

getMinimumSpan

public float getMinimumSpan(int axis)
ビューの最小のスパンを、軸に沿って決定します。このメソッドは、指定された軸に沿って、Component.getMinimumSize によって返された値を返すように実装されています。

オーバーライド:
クラス View 内の getMinimumSpan
パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ビューの描画対象のスパン >= 0。通常、ビューは返されたスパン内に描画されることになるが、保証はない。親はビューのサイズ変更や分割を行う可能性がある
例外:
IllegalArgumentException - 軸が無効な場合
関連項目:
View.getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)
ビューの最大スパンを、軸に沿って決定します。このメソッドは、指定された軸に沿って、Component.getMaximumSize によって返された値を返すように実装されています。

オーバーライド:
クラス View 内の getMaximumSpan
パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ビューの描画対象のスパン >= 0。通常、ビューは返されたスパン内に描画されることになるが、保証はない。親はビューのサイズ変更や分割を行う可能性がある
例外:
IllegalArgumentException - 軸が無効な場合
関連項目:
View.getPreferredSpan(int)

getAlignment

public float getAlignment(int axis)
ビューの望ましい整列を、軸に沿って決定します。埋め込みコンポーネントの整列のために実装されています。

オーバーライド:
クラス View 内の getAlignment
パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
望ましい配置。値の範囲は 0.0 〜 1.0 で、0 は起点への配置、1.0 は起点から最大に離れた配置を表す。0.5 は、ビューの中央への配置になる

setParent

public void setParent(View p)
子ビューの親を設定します。子に自分が親であることを知らせるために、親が呼び出します。これによってビューは親の Container などにアクセスできるようになります。コンポーネントがまだ作成されていない場合には、スーパークラスの動作が実行されたあとに createComponent が呼び出されます。次に、埋め込みコンポーネントの親が getContainer によって返された値に設定されます。親ビューパラメータの値が null の場合、このビューはクリーンアップ中であり、コンポーネントはその親から削除されます。

コンポーネントの階層の変更は、コンポーネントのロックに影響を与えることがあるため、View 階層に対して安全ではありません。したがって、この機能は、イベントスレッド上の場合にはただちに実行され、別のスレッドから呼び出された場合 (非同期の更新からの変更の通知の場合) はイベントキューに入れられます。

オーバーライド:
クラス View 内の setParent
パラメータ:
p - 親

modelToView

public Shape modelToView(int pos,
                         Shape a,
                         Position.Bias b)
                  throws BadLocationException
モデルの座標空間から、ビューの座標空間へのマッピングを提供します。

定義:
クラス View 内の modelToView
パラメータ:
pos - 変換対象の位置 >= 0
a - 描画のために割り当てられた領域
b - 位置が 2 つのビューの境界である場合に、オフセットによって表される直前の文字または次の文字へのバイアス。b の値は以下のどれか
  • Position.Bias.Forward
  • Position.Bias.Backward
戻り値:
指定された位置のバウンディングボックス
例外:
BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を表さない場合
関連項目:
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

viewToModel

public int viewToModel(float x,
                       float y,
                       Shape a,
                       Position.Bias[] bias)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。

定義:
クラス View 内の viewToModel
パラメータ:
x - X 座標 >= 0
y - Y 座標 >= 0
a - 描画のために割り当てられた領域
戻り値:
指定されたビュー内の点をもっとも適切に表現するモデル内の位置
関連項目:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

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.