モジュール java.desktop
パッケージ javax.swing

クラスBoxLayout

  • すべての実装されたインタフェース:
    LayoutManager, LayoutManager2, Serializable
    直系の既知のサブクラス:
    DefaultMenuLayout

    public class BoxLayout
    extends Object
    implements LayoutManager2, Serializable
    複数のコンポーネントを、垂直方向にも水平方向にも配置できるようにする、レイアウト・マネージャです。 コンポーネントは折り返されずに配置されるので、たとえば、垂直に並べられたコンポーネントは、フレームのサイズが変更されても垂直に並んだままです。
    例:

    次の文は、この図について説明しています。

    水平および垂直の異なる組み合わせを持つ複数のパネルをネストすると、GridBagLayoutと同様の効果を簡単に実現できます。 上の図では、水平方向に並べられた2つのパネルに、垂直方向に並べられた3つのコンポーネントがそれぞれ含まれています。

    BoxLayoutマネージャは、レイアウトの種類を指定する軸パラメータで構築されます。 以下の4つの選択肢があります。

    X_AXIS - コンポーネントは左から右へ水平に配置されます。
    Y_AXIS - コンポーネントは上から下へ垂直に配置されます。
    LINE_AXIS - コンポーネントはコンテナのComponentOrientationプロパティに基づき、単語を一列に配置するのと同じ方法で配置されます。 コンテナのComponentOrientationが水平方向の場合、コンポーネントは水平方向に配置され、垂直方向の場合は垂直方向に配置されます。 水平配置では、コンテナのComponentOrientationが左から右への配置の場合は、コンポーネントは左から右に配置され、そうでない場合は右から左に配置されます。 垂直配置では、コンポーネントは常に上から下に配置されます。
    PAGE_AXIS - コンポーネントはコンテナのComponentOrientationプロパティに基づき、テキスト行をページに配置するのと同じ方法で配置されます。 コンテナのComponentOrientationが水平方向の場合、コンポーネントは垂直方向に配置され、垂直方向の場合は水平方向に配置されます。 水平配置では、コンテナのComponentOrientationが左から右への配置の場合は、コンポーネントは左から右に配置され、そうでない場合は右から左に配置されます。  垂直配置では、コンポーネントは常に上から下に配置されます。

    どちらの方向に配置される場合でも、コンポーネントはコンテナに追加された順序で配置されます。

    BoxLayoutはそれらの推奨される幅(水平レイアウトの場合)または高さ(垂直レイアウトの場合)でコンポーネントを配置しようとします。 水平レイアウトで、すべてのコンポーネントが同じ高さでない場合、BoxLayoutはすべてのコンポーネントを最も高いコンポーネントと同じ高さにしようとします。 特定のコンポーネントでそれが可能でない場合、BoxLayoutはコンポーネントのY揃えに従って、そのコンポーネントを垂直に配置します。 デフォルトでコンポーネントは0.5のY揃えになり、これはコンポーネントの垂直方向の中心が、0.5のY揃えの他のコンポーネントの垂直方向の中心と同じY座標を持つことを意味します。

    同様に、垂直レイアウトの場合も、BoxLayoutは列のすべてのコンポーネントの幅を最大幅に揃えるよう試行します。 これに失敗した場合は、X方向の位置合わせ用の値に従って、コンポーネントを水平方向に整列します。 PAGE_AXISレイアウトでは、コンポーネントの先端位置を基準にして水平方向に整列されます。 つまり、X方向の位置合わせ用の値が0.0の場合、コンテナのComponentOrientationが左から右方向であればコンポーネントの左端になり、右から左方向であればコンポーネントの右端になります。

    多くのプログラムではBoxLayoutが直接使われる代わりに、Boxクラスが使われます。 Boxクラスは、BoxLayoutを使用する軽量コンテナです。 BoxLayoutを効果的に使用するために役立つ便利なメソッドを提供します。 ネストされた複数のボックスへのコンポーネント追加によって、必要な配置を容易に得ることができます。

    詳細と使用例については、『The Java Tutorial』の「How to Use BoxLayout」を参照してください。

    警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

    導入されたバージョン:
    1.2
    関連項目:
    Box, ComponentOrientation, JComponent.getAlignmentX(), JComponent.getAlignmentY()
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static int LINE_AXIS
      ターゲット・コンテナのComponentOrientationプロパティの決定に従って、テキスト行の方向にコンポーネントの配置を指定します。
      static int PAGE_AXIS
      ターゲット・コンテナのComponentOrientationプロパティの決定に従って、複数ページにまたがって行が進んでいく方向にコンポーネントが配置されるように指定します。
      static int X_AXIS
      コンポーネントの配置の方向を左から右に指定します。
      static int Y_AXIS
      コンポーネントの配置の方向を上から下に指定します。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      BoxLayout​(Container target, int axis)
      コンポーネントを指定された軸方向に配置するレイアウト・マネージャを生成します。
    • フィールドの詳細

      • X_AXIS

        public static final int X_AXIS
        コンポーネントの配置の方向を左から右に指定します。
        関連項目:
        定数フィールド値
      • Y_AXIS

        public static final int Y_AXIS
        コンポーネントの配置の方向を上から下に指定します。
        関連項目:
        定数フィールド値
      • LINE_AXIS

        public static final int LINE_AXIS
        ターゲット・コンテナのComponentOrientationプロパティの決定に従って、テキスト行の方向にコンポーネントの配置を指定します。
        関連項目:
        定数フィールド値
      • PAGE_AXIS

        public static final int PAGE_AXIS
        ターゲット・コンテナのComponentOrientationプロパティの決定に従って、複数ページにまたがって行が進んでいく方向にコンポーネントが配置されるように指定します。
        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • BoxLayout

        @ConstructorProperties({"target","axis"})
        public BoxLayout​(Container target,
                         int axis)
        コンポーネントを指定された軸方向に配置するレイアウト・マネージャを生成します。
        パラメータ:
        target - 配置する必要があるコンテナ
        axis - コンポーネントを配置する際に基準とする軸。 BoxLayout.X_AXIS、BoxLayout.Y_AXIS、BoxLayout.LINE_AXISBoxLayout.PAGE_AXISのいずれか
        例外:
        AWTError - axisの値が無効の場合
    • メソッドの詳細

      • getTarget

        public final Container getTarget()
        このレイアウト・マネージャを使用するコンテナを返します。
        戻り値:
        このレイアウト・マネージャを使用するコンテナ
        導入されたバージョン:
        1.6
      • getAxis

        public final int getAxis()
        コンポーネントの配置に使用された軸を返します。 BoxLayout.X_AXIS、BoxLayout.Y_AXIS、BoxLayout.LINE_AXISBoxLayout.PAGE_AXISのいずれかを返します
        戻り値:
        コンポーネントの配置に使用された軸
        導入されたバージョン:
        1.6
      • invalidateLayout

        public void invalidateLayout​(Container target)
        子のレイアウト関連情報が変更されたことを示します。キャッシュされていた計算はすべてフラッシュされます。

        このメソッドは、コンテナで無効なメソッドが呼び出されたときにAWTによって呼び出されます。 無効なメソッドはイベント・スレッドに非同期的に呼び出すことができるため、このメソッドも非同期的に呼び出すことができます。

        定義:
        invalidateLayout、インタフェース: LayoutManager2
        パラメータ:
        target - 影響を受けるコンテナ
        例外:
        AWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合
      • addLayoutComponent

        public void addLayoutComponent​(String name,
                                       Component comp)
        このクラスでは使用しません。
        定義:
        addLayoutComponent、インタフェース: LayoutManager
        パラメータ:
        name - コンポーネントの名前
        comp - コンポーネント
      • removeLayoutComponent

        public void removeLayoutComponent​(Component comp)
        このクラスでは使用しません。
        定義:
        removeLayoutComponent、インタフェース: LayoutManager
        パラメータ:
        comp - コンポーネント
      • addLayoutComponent

        public void addLayoutComponent​(Component comp,
                                       Object constraints)
        このクラスでは使用しません。
        定義:
        addLayoutComponent、インタフェース: LayoutManager2
        パラメータ:
        comp - コンポーネント
        constraints - 制約
      • getLayoutAlignmentX

        public float getLayoutAlignmentX​(Container target)
        コンテナのX軸方向の配置を返します。 ボックスが水平方向である場合は、デフォルトの配置が返されます。 そうでない場合は、子をX軸に沿って配置するのに必要な配置が返されます。
        定義:
        getLayoutAlignmentX、インタフェース: LayoutManager2
        パラメータ:
        target - コンテナ
        戻り値:
        配置>= 0.0fかつ<= 1.0f
        例外:
        AWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合
      • getLayoutAlignmentY

        public float getLayoutAlignmentY​(Container target)
        コンテナのY軸方向の配置を返します。 ボックスが垂直方向である場合は、デフォルトの位置合わせ用の値が返されます。 そうでない場合は、子をY軸に沿って配置するのに必要な位置合わせ用の値が返されます。
        定義:
        getLayoutAlignmentY、インタフェース: LayoutManager2
        パラメータ:
        target - コンテナ
        戻り値:
        配置>= 0.0fかつ<= 1.0f
        例外:
        AWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合
      • layoutContainer

        public void layoutContainer​(Container target)
        指定されたコンテナを配置する必要があるときにAWT によって呼び出されます。
        定義:
        layoutContainer、インタフェース: LayoutManager
        パラメータ:
        target - レイアウトするコンテナ
        例外:
        AWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合