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

クラスBoxLayout

java.lang.Object
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
関連項目:
  • フィールドのサマリー

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

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

    修飾子と型
    メソッド
    説明
    void
    addLayoutComponent(Component comp, Object constraints)
    このクラスでは使用しません。
    void
    このクラスでは使用しません。
    final int
    コンポーネントの配置に使用された軸を返します。
    float
    コンテナのX軸方向の配置を返します。
    float
    コンテナのY軸方向の配置を返します。
    final Container
    このレイアウト・マネージャを使用するコンテナを返します。
    void
    子のレイアウト関連情報が変更されたことを示します。キャッシュされていた計算はすべてフラッシュされます。
    void
    指定されたコンテナを配置する必要があるときにAWT によって呼び出されます。
    ターゲット・コンテナに含まれているコンポーネントをレイアウトするときに使用できる、最大の寸法を返します。
    指定されたターゲット・コンテナに含まれるコンポーネントのレイアウトに必要な最小寸法を返します。
    指定されたターゲット・コンテナ内にコンポーネントがある場合に、このレイアウトの推奨サイズを返します。
    void
    このクラスでは使用しません。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • 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 - 制約
    • preferredLayoutSize

      public Dimension preferredLayoutSize(Container target)
      指定されたターゲット・コンテナ内にコンポーネントがある場合に、このレイアウトの推奨サイズを返します。
      定義:
      preferredLayoutSize、インタフェース: LayoutManager
      パラメータ:
      target - 配置する必要があるコンテナ
      戻り値:
      サイズ>= 0かつ<= Integer.MAX_VALUE
      例外:
      AWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合
      関連項目:
    • minimumLayoutSize

      public Dimension minimumLayoutSize(Container target)
      指定されたターゲット・コンテナに含まれるコンポーネントのレイアウトに必要な最小寸法を返します。
      定義:
      minimumLayoutSize、インタフェース: LayoutManager
      パラメータ:
      target - 配置する必要があるコンテナ
      戻り値:
      サイズ>= 0かつ<= Integer.MAX_VALUE
      例外:
      AWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合
      関連項目:
    • maximumLayoutSize

      public Dimension maximumLayoutSize(Container target)
      ターゲット・コンテナに含まれているコンポーネントをレイアウトするときに使用できる、最大の寸法を返します。
      定義:
      maximumLayoutSize、インタフェース: LayoutManager2
      パラメータ:
      target - 配置する必要があるコンテナ
      戻り値:
      サイズ>= 0かつ<= Integer.MAX_VALUE
      例外:
      AWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合
      関連項目:
    • 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コンストラクタに指定されたコンテナでない場合