- すべての実装されたインタフェース:
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 intLINE_AXISターゲット・コンテナのComponentOrientationプロパティの決定に従って、テキスト行の方向にコンポーネントの配置を指定します。static intPAGE_AXISターゲット・コンテナのComponentOrientationプロパティの決定に従って、複数ページにまたがって行が進んでいく方向にコンポーネントが配置されるように指定します。static intX_AXISコンポーネントの配置の方向を左から右に指定します。static intY_AXISコンポーネントの配置の方向を上から下に指定します。 -
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型 メソッド 説明 voidaddLayoutComponent(Component comp, Object constraints)このクラスでは使用しません。voidaddLayoutComponent(String name, Component comp)このクラスでは使用しません。intgetAxis()コンポーネントの配置に使用された軸を返します。floatgetLayoutAlignmentX(Container target)コンテナのX軸方向の配置を返します。floatgetLayoutAlignmentY(Container target)コンテナのY軸方向の配置を返します。ContainergetTarget()このレイアウト・マネージャを使用するコンテナを返します。voidinvalidateLayout(Container target)子のレイアウト関連情報が変更されたことを示します。キャッシュされていた計算はすべてフラッシュされます。voidlayoutContainer(Container target)指定されたコンテナを配置する必要があるときにAWT によって呼び出されます。DimensionmaximumLayoutSize(Container target)ターゲット・コンテナに含まれているコンポーネントをレイアウトするときに使用できる、最大の寸法を返します。DimensionminimumLayoutSize(Container target)指定されたターゲット・コンテナに含まれているコンポーネントのレイアウトに必要な最小寸法を返します。DimensionpreferredLayoutSize(Container target)指定されたターゲット・コンテナ内にコンポーネントがある場合に、このレイアウトの推奨サイズを返します。voidremoveLayoutComponent(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
このクラスでは使用しません。- 定義:
addLayoutComponent、インタフェース:LayoutManager- パラメータ:
name- コンポーネントの名前comp- コンポーネント
-
removeLayoutComponent
public void removeLayoutComponent(Component comp)このクラスでは使用しません。- 定義:
removeLayoutComponent、インタフェース:LayoutManager- パラメータ:
comp- コンポーネント
-
addLayoutComponent
このクラスでは使用しません。- 定義:
addLayoutComponent、インタフェース:LayoutManager2- パラメータ:
comp- コンポーネントconstraints- 制約
-
preferredLayoutSize
指定されたターゲット・コンテナ内にコンポーネントがある場合に、このレイアウトの推奨サイズを返します。- 定義:
preferredLayoutSize、インタフェース:LayoutManager- パラメータ:
target-配置する必要があるコンテナ- 戻り値:
- サイズ>= 0かつ<= Integer.MAX_VALUE
- 例外:
AWTError- ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合- 関連項目:
Container,minimumLayoutSize(java.awt.Container),maximumLayoutSize(java.awt.Container)
-
minimumLayoutSize
指定されたターゲット・コンテナに含まれているコンポーネントのレイアウトに必要な最小寸法を返します。- 定義:
minimumLayoutSize、インタフェース:LayoutManager- パラメータ:
target-配置する必要があるコンテナ- 戻り値:
- サイズ>= 0かつ<= Integer.MAX_VALUE
- 例外:
AWTError- ターゲットがBoxLayoutコンストラクタに指定されたコンテナでない場合- 関連項目:
preferredLayoutSize(java.awt.Container),maximumLayoutSize(java.awt.Container)
-
maximumLayoutSize
ターゲット・コンテナに含まれているコンポーネントをレイアウトするときに使用できる、最大の寸法を返します。- 定義:
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コンストラクタに指定されたコンテナでない場合
-