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を参照してください。 
| 修飾子と型 | フィールド | 説明 | 
|---|---|---|
| static int | LINE_AXIS | ターゲット・コンテナの ComponentOrientationプロパティの決定に従って、テキスト行の方向にコンポーネントの配置を指定します。 | 
| static int | PAGE_AXIS | ターゲット・コンテナの ComponentOrientationプロパティの決定に従って、複数ページにまたがって行が進んでいく方向にコンポーネントが配置されるように指定します。 | 
| static int | X_AXIS | コンポーネントの配置の方向を左から右に指定します。 | 
| static int | Y_AXIS | コンポーネントの配置の方向を上から下に指定します。 | 
| コンストラクタ | 説明 | 
|---|---|
| BoxLayout(Container target, int axis) | コンポーネントを指定された軸方向に配置するレイアウト・マネージャを生成します。 | 
| 修飾子と型 | メソッド | 説明 | 
|---|---|---|
| void | addLayoutComponent(Component comp, Object constraints) | このクラスでは使用しません。 | 
| void | addLayoutComponent(String name, Component comp) | このクラスでは使用しません。 | 
| int | getAxis() | コンポーネントの配置に使用された軸を返します。 | 
| float | getLayoutAlignmentX(Container target) | コンテナのX軸方向の配置を返します。 | 
| float | getLayoutAlignmentY(Container target) | コンテナのY軸方向の配置を返します。 | 
| Container | getTarget() | このレイアウト・マネージャを使用するコンテナを返します。 | 
| void | invalidateLayout(Container target) | 子のレイアウト関連情報が変更されたことを示します。キャッシュされていた計算はすべてフラッシュされます。 | 
| void | layoutContainer(Container target) | 指定されたコンテナを配置する必要があるときにAWT  によって呼び出されます。 | 
| Dimension | maximumLayoutSize(Container target) | ターゲット・コンテナに含まれているコンポーネントをレイアウトするときに使用できる、最大の寸法を返します。 | 
| Dimension | minimumLayoutSize(Container target) | 指定されたターゲット・コンテナに含まれるコンポーネントのレイアウトに必要な最小寸法を返します。 | 
| Dimension | preferredLayoutSize(Container target) | 指定されたターゲット・コンテナ内にコンポーネントがある場合に、このレイアウトの推奨サイズを返します。 | 
| void | removeLayoutComponent(Component comp) | このクラスでは使用しません。 | 
public static final int X_AXIS
public static final int Y_AXIS
public static final int LINE_AXIS
ComponentOrientationプロパティの決定に従って、テキスト行の方向にコンポーネントの配置を指定します。public static final int PAGE_AXIS
ComponentOrientationプロパティの決定に従って、複数ページにまたがって行が進んでいく方向にコンポーネントが配置されるように指定します。@ConstructorProperties(value={"target","axis"}) public BoxLayout(Container target, int axis)
target - 配置する必要があるコンテナaxis - コンポーネントを配置する際に基準とする軸。 BoxLayout.X_AXIS、BoxLayout.Y_AXIS、BoxLayout.LINE_AXIS、BoxLayout.PAGE_AXISのいずれか AWTError - axisの値が無効の場合public final Container getTarget()
public final int getAxis()
BoxLayout.X_AXIS、BoxLayout.Y_AXIS、BoxLayout.LINE_AXIS、BoxLayout.PAGE_AXISのいずれかを返します public void invalidateLayout(Container target)
このメソッドは、コンテナで無効なメソッドが呼び出されたときにAWTによって呼び出されます。 無効なメソッドはイベント・スレッドに非同期的に呼び出すことができるため、このメソッドも非同期的に呼び出すことができます。
invalidateLayout、インタフェースLayoutManager2target - 影響を受けるコンテナAWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合public void addLayoutComponent(String name, Component comp)
addLayoutComponent、インタフェースLayoutManagername - コンポーネントの名前comp - コンポーネントpublic void removeLayoutComponent(Component comp)
removeLayoutComponent、インタフェースLayoutManagercomp - コンポーネントpublic void addLayoutComponent(Component comp, Object constraints)
addLayoutComponent、インタフェースLayoutManager2comp - コンポーネントconstraints - 制約public Dimension preferredLayoutSize(Container target)
preferredLayoutSize、インタフェースLayoutManagertarget - 配置する必要があるコンテナAWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合Container, minimumLayoutSize(java.awt.Container), maximumLayoutSize(java.awt.Container)public Dimension minimumLayoutSize(Container target)
minimumLayoutSize、インタフェースLayoutManagertarget - 配置する必要があるコンテナAWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合preferredLayoutSize(java.awt.Container), maximumLayoutSize(java.awt.Container)public Dimension maximumLayoutSize(Container target)
maximumLayoutSize、インタフェースLayoutManager2target - 配置する必要があるコンテナAWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合preferredLayoutSize(java.awt.Container), minimumLayoutSize(java.awt.Container)public float getLayoutAlignmentX(Container target)
getLayoutAlignmentX、インタフェースLayoutManager2target - コンテナAWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合public float getLayoutAlignmentY(Container target)
getLayoutAlignmentY、インタフェースLayoutManager2target - コンテナAWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合public void layoutContainer(Container target)
layoutContainer、インタフェースLayoutManagertarget - レイアウトするコンテナAWTError - ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合 バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。