public class ComponentView extends View
コンポーネントは、Component.getAlignmentY
によって返された値に従って、テキストベースラインに相対的に配置されます。Swing コンポーネントの場合、JComponent.setAlignmentY
メソッドを使うと、この値を簡単に設定できます。たとえば、値を 0.75
に設定すると、コンポーネントの 75 パーセントがベースラインの上に、25 パーセントがベースラインの下になります。
このクラス実装により、すべてのコンポーネントアクセスがイベントスレッド上で確実に行われ、複数スレッドが存在する場合でも (つまり、モデル変更の非同期通知からなど) 適切に動作する必要のある処理が追加で実行されます。
使用されるコンポーネントは、createComponent メソッドの戻り値で決定されます。このメソッドのデフォルトの実装では、(StyleConstants.getComponent を呼び出すことで) 要素の属性として保持されているコンポーネントが返されます。この動作には、複数のコンポーネント (すなわち共有モデル) では使用できないという制限があります。サブクラスでは、createComponent を実装することでこの制約を取り消し、属性に含まれているある種の仕様に基づいたコンポーネントを実際に作成できます。html パッケージの ObjectView クラスは、共有モデルの複数コンポーネントビューをサポートする ComponentView の実装の例です。
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
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)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
|
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
public ComponentView(Element elem)
elem
- デコレートされる要素protected Component createComponent()
public final Component getComponent()
public void paint(Graphics g, Shape a)
paint
、クラス: View
g
- グラフィックスコンテキストa
- 形状View.paint(java.awt.Graphics, java.awt.Shape)
public float getPreferredSpan(int axis)
getPreferredSpan
、クラス: View
axis
- View.X_AXIS または View.Y_AXISIllegalArgumentException
- 軸が無効な場合View.getPreferredSpan(int)
public float getMinimumSpan(int axis)
getMinimumSpan
、クラス: View
axis
- View.X_AXIS または View.Y_AXISIllegalArgumentException
- 軸が無効な場合View.getPreferredSpan(int)
public float getMaximumSpan(int axis)
getMaximumSpan
、クラス: View
axis
- View.X_AXIS または View.Y_AXISIllegalArgumentException
- 軸が無効な場合View.getPreferredSpan(int)
public float getAlignment(int axis)
getAlignment
、クラス: View
axis
- View.X_AXIS または View.Y_AXISpublic void setParent(View p)
getContainer
によって返された値に設定されます。親ビューパラメータの値が null の場合、このビューはクリーンアップ中であり、コンポーネントはその親から削除されます。
コンポーネントの階層の変更は、コンポーネントのロックに影響を与えることがあるため、View 階層に対して安全ではありません。したがって、この機能は、イベントスレッド上の場合にはただちに実行され、別のスレッドから呼び出された場合 (非同期の更新からの変更の通知の場合) はイベントキューに入れられます。
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
modelToView
、クラス: View
pos
- 変換対象の位置 >= 0a
- 描画するために割り当てられた領域b
- 位置が 2 つのビューの境界である場合に、オフセットによって表される直前の文字または次の文字へのバイアス。b
の値は次のどれかになる。
Position.Bias.Forward
Position.Bias.Backward
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
viewToModel
、クラス: View
x
- X 座標 >= 0y
- Y 座標 >= 0a
- 描画するために割り当てられた領域View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.