モジュール java.desktop
パッケージ 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の実装の例です。

    • コンストラクタの詳細

      • 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 - 形状
        関連項目:
        View.paint(java.awt.Graphics, java.awt.Shape)
      • getPreferredSpan

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

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

        public float getMaximumSpan​(int axis)
        このビューの最大スパンを軸に沿って指定します。 このメソッドは、指定された軸に沿って、Component.getMaximumSizeによって返された値を返すように実装されています。
        オーバーライド:
        getMaximumSpan、クラス: View
        パラメータ:
        axis - View.X_AXISまたはView.Y_AXIS
        戻り値:
        ビューの描画先のスパン。0以上。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある。
        例外:
        IllegalArgumentException - 軸が無効な場合
        関連項目:
        View.getPreferredSpan(int)
      • 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 - 指定された位置が、関連するドキュメント内の有効な位置を示さない場合
        関連項目:
        View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
      • viewToModel

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