クラス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の実装の例です。

  • フィールドのサマリー

    クラスビューで宣言されたフィールド

    BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
    修飾子と型
    フィールド
    説明
    static final int
    フォーマット目的とするには不完全な分割の機会であるビューを示すウエイトです。
    static final int
    分割をサポートしているビューを示すウエイトで、分割するのに適した位置であることを表わしています。
    static final int
    分割をサポートしているビューを示すウエイトで、子を分割することで子をフォーマットするビューに配置されている場合に、ビューを正しく表わすには分割しなければいけません。
    static final int
    分割をサポートしているビューを示すウエイトですが、もっと良い機会が存在する可能性があります。
    static final int
    フォーマット/分割処理の軸です。
    static final int
    フォーマット/分割処理の軸です。

    インタフェースで宣言されたフィールド SwingConstants

    BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
    修飾子と型
    フィールド
    説明
    static final int
    ボックスの下端を指定するために使用するボックス配置定数です。
    static final int
    領域内の中央位置です。
    static final int
    東(右)の方角です。
    static final int
    水平方向です。
    static final int
    左から右に記述する言語および右から左に記述する言語で使用するテキストのリーディング・エッジを指定します。
    static final int
    ボックスの左端を指定するために使用するボックス配置定数です。
    static final int
    シーケンス内の次の方向を指定します。
    static final int
    北(上)の方角です。
    static final int
    北東(右上)の方角です。
    static final int
    北西(左上)の方角です。
    static final int
    シーケンス内の前の方向を指定します。
    static final int
    ボックスの右端を指定するために使用するボックス配置定数です。
    static final int
    南(下)の方角です。
    static final int
    南東(右下)の方角です。
    static final int
    南西(左下)の方角です。
    static final int
    ボックスの上端を指定するために使用するボックス配置定数です。
    static final int
    左から右に記述する言語および右から左に記述する言語で使用するテキストのトレーリング・エッジを指定します。
    static final int
    垂直方向です。
    static final int
    西(左)の方角です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    新しいComponentViewオブジェクトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected Component
    このビューに関連付けられたコンポーネントを作成します。
    float
    getAlignment(int axis)
    軸に沿ったこのビューの望ましいレイアウトを決定します。
    final Component
    ビューに関連付けられたコンポーネントを取得します。
    float
    getMaximumSpan(int axis)
    このビューの最大スパンを軸に沿って指定します。
    float
    getMinimumSpan(int axis)
    このビューの最小スパンを軸に沿って指定します。
    float
    getPreferredSpan(int axis)
    このビューに適切なスパンを軸に沿って指定します。
    modelToView(int pos, Shape a, Position.Bias b)
    モデルの座標空間から、ビューの座標空間へのマッピングを提供します。
    void
    実際のペイントの動作は通常、コンポーネントがその親コンテナ(このビューを収容するコンテナ)との関連付けから発生します。
    void
    子ビューの親を設定します。
    int
    viewToModel(float x, float y, Shape a, Position.Bias[] bias)
    ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。

    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
    修飾子と型
    メソッド
    説明
    void
    1つの子ビューを追加します。
    breakView(int axis, int offset, float pos, float len)
    指定された軸でこのビューの分割を試みます。
    void
    このビューが扱う位置で属性が変更されたことをドキュメントから通知します。
    createFragment(int p0, int p1)
    要素の一部分を表すビューを作成します。
    protected void
    指定されたDocumentEventを、モデルへの変更について通知する必要のある子ビューに転送します。
    protected void
    指定された子ビューにDocumentEventを転送します。
    描画するときに使用する属性を取得します。
    int
    getBreakWeight(int axis, float pos, float len)
    このビューで分割のウエイトがどのくらい適切かを示します。
    getChildAllocation(int index, Shape a)
    指定された子ビューの割り当てを取得します。
    ビューを収容するコンテナを取得します。
    ビューに関連したモデルを取り出します。
    このビューがマッピングされる対象の構造部分を取り出します。
    int
    このビューが扱うモデルの一部を取り出します。
    レンダリングのためのGraphicsを取得します。
    int
    getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
    キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。
    ビューの親を返します。
    int
    getResizeWeight(int axis)
    指定された軸に沿ってビューのサイズを変更できるかどうかを指定します。
    int
    このビューが扱うモデルの一部を取り出します。
    getToolTipText(float x, float y, Shape allocation)
    指定された位置にあるツールヒントのテキストを返します。
    getView(int n)
    n番目の子ビューを取得します。
    int
    このビュー内のビューの数を返します。
    ビュー階層を供給しているViewFactoryの実装を取り出します。
    int
    getViewIndex(float x, float y, Shape allocation)
    ビュー内の指定された位置を表す子ビュー・インデックスを返します。
    int
    モデル内の指定された位置を表す子ビューのインデックスを返します。
    void
    insert(int offs, View v)
    1つの子ビューを挿入します。
    void
    このビューが扱う位置でドキュメントに何かが挿入されたことを通知します。
    boolean
    ビューが可視かどうかを示すboolean型の値を返します。
    modelToView(int pos, Shape a)
    非推奨。 
    modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)
    指定した範囲について、ドキュメント・モデル座標空間からビュー座標空間へのマッピングを提供します。
    void
    preferenceChanged(View child, boolean width, boolean height)
    子ビューは親でこのメソッドを呼び出し、設定が変更されたこと、および再度レイアウトが考慮されなければならないことを示すことができます。
    void
    remove(int i)
    指定された位置にある子を1つ削除します。
    void
    すべての子を削除します。
    void
    このビューが扱うドキュメント内の位置から何かが削除されたということを通知します。
    void
    replace(int offset, int length, View[] views)
    子ビューを置換します。
    void
    setSize(float width, float height)
    ビューのサイズを設定します。
    protected boolean
    モデルが変更されたという通知を受け取ると、子ビューを更新します。このビューが扱う要素の変更記録があります。
    protected void
    モデルから変更の通知を受け取った場合に、レイアウトを更新します。
    int
    viewToModel(float x, float y, Shape a)
    非推奨。 

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • 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)
      実際のペイントの動作は通常、コンポーネントがその親コンテナ(このビューを収容するコンテナ)との関連付けから発生します。 実装されていても何も行いません。
      定義:
      paint、クラスView
      パラメータ:
      g - グラフィックス・コンテキスト
      a - 形状
      関連項目:
    • getPreferredSpan

      public float getPreferredSpan(int axis)
      このビューに適切なスパンを軸に沿って指定します。 このメソッドは、指定された軸に沿って、Component.getPreferredSizeによって返された値を返すように実装されています。
      定義:
      getPreferredSpan、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ビューの描画先のスパン。0以上。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある。
      スロー:
      IllegalArgumentException - 軸が無効な場合
    • getMinimumSpan

      public float getMinimumSpan(int axis)
      このビューの最小スパンを軸に沿って指定します。 このメソッドは、指定された軸に沿って、Component.getMinimumSizeによって返された値を返すように実装されています。
      オーバーライド:
      getMinimumSpan、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ビューの描画先のスパン。0以上。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある。
      スロー:
      IllegalArgumentException - 軸が無効な場合
      関連項目:
    • getMaximumSpan

      public float getMaximumSpan(int axis)
      このビューの最大スパンを軸に沿って指定します。 このメソッドは、指定された軸に沿って、Component.getMaximumSizeによって返された値を返すように実装されています。
      オーバーライド:
      getMaximumSpan、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ビューの描画先のスパン。0以上。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある。
      スロー:
      IllegalArgumentException - 軸が無効な場合
      関連項目:
    • getAlignment

      public float getAlignment(int axis)
      軸に沿ったこのビューの望ましいレイアウトを決定します。 埋込みコンポーネントの配置のために実装されています。
      オーバーライド:
      getAlignment、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      望ましい配置。 この値の範囲は0.0から1.0で、0は起点への配置、1.0は起点から最大限離れた配置を表す。 0.5は、ビューの中央への配置になります。
    • setParent

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

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

      オーバーライド:
      setParent、クラスView
      パラメータ:
      p - 親
    • modelToView

      public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
      モデルの座標空間から、ビューの座標空間へのマッピングを提供します。
      定義:
      modelToView、クラスView
      パラメータ:
      pos - 変換対象の位置。0以上
      a - 描画するために割り当てられた領域
      b - 位置が2つのビューの境界である場合に、オフセットによって表される直前の文字または次の文字へのバイアス。bの値は次のどれかになる。
      • Position.Bias.Forward
      • Position.Bias.Backward
      戻り値:
      指定された位置のバウンディング・ボックス
      スロー:
      BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を示さない場合
      関連項目:
    • viewToModel

      public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
      ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
      定義:
      viewToModel、クラスView
      パラメータ:
      x - X座標。0以上
      y - Y座標。0以上
      a - 描画するために割り当てられた領域
      bias - 戻りバイアス
      戻り値:
      指定されたビュー内の点をもっとも適切に表現するモデル内の位置
      関連項目: