- 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
- 関連項目:
Box
,ComponentOrientation
,JComponent.getAlignmentX()
,JComponent.getAlignmentY()
, 「直列化されたフォーム」
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static int
LINE_AXIS
ターゲット・コンテナのComponentOrientation
プロパティの決定に従って、テキスト行の方向にコンポーネントの配置を指定します。static int
PAGE_AXIS
ターゲット・コンテナのComponentOrientation
プロパティの決定に従って、複数ページにまたがって行が進んでいく方向にコンポーネントが配置されるように指定します。static int
X_AXIS
コンポーネントの配置の方向を左から右に指定します。static int
Y_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)
このクラスでは使用しません。
-
-
-
フィールドの詳細
-
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_AXIS
、BoxLayout.PAGE_AXIS
のいずれか- 例外:
AWTError
-axis
の値が無効の場合
-
-
メソッドの詳細
-
getTarget
public final Container getTarget()
このレイアウト・マネージャを使用するコンテナを返します。- 戻り値:
- このレイアウト・マネージャを使用するコンテナ
- 導入されたバージョン:
- 1.6
-
getAxis
public final int getAxis()
コンポーネントの配置に使用された軸を返します。BoxLayout.X_AXIS、BoxLayout.Y_AXIS、BoxLayout.LINE_AXIS
、BoxLayout.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コンストラクタに指定されたコンテナでない場合- 関連項目:
Container
,minimumLayoutSize(java.awt.Container)
,maximumLayoutSize(java.awt.Container)
-
minimumLayoutSize
public Dimension minimumLayoutSize(Container target)
指定されたターゲット・コンテナに含まれるコンポーネントのレイアウトに必要な最小寸法を返します。- 定義:
minimumLayoutSize
、インタフェース:LayoutManager
- パラメータ:
target
- 配置する必要があるコンテナ- 戻り値:
- サイズ>= 0かつ<= Integer.MAX_VALUE
- 例外:
AWTError
- ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合- 関連項目:
preferredLayoutSize(java.awt.Container)
,maximumLayoutSize(java.awt.Container)
-
maximumLayoutSize
public Dimension maximumLayoutSize(Container target)
ターゲット・コンテナに含まれているコンポーネントをレイアウトするときに使用できる、最大の寸法を返します。- 定義:
maximumLayoutSize
、インタフェース:LayoutManager2
- パラメータ:
target
- 配置する必要があるコンテナ- 戻り値:
- サイズ>= 0かつ<= Integer.MAX_VALUE
- 例外:
AWTError
- ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合- 関連項目:
preferredLayoutSize(java.awt.Container)
,minimumLayoutSize(java.awt.Container)
-
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コンストラクタに指定されたコンテナでない場合
-
-