JavaTM Platform
Standard Ed. 6

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 は各コンポーネントをもっとも高いコンポーネントと同じ高さに揃えようとします。特定のコンポーネントでこれが不可能な場合は、そのコンポーネントの Y 方向の位置合わせ用の値に従って、コンポーネントを縦に整列します。デフォルトでは、コンポーネントの Y 方向の位置合わせ用の値は 0.5 です。 これは、コンポーネントの上下方向の中心の Y 座標が、Y 方向の位置合わせ用の値が 0.5 の別のコンポーネントの上下方向の中心と同じになることを意味します。

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

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

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

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

関連項目:
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)
          コンポーネントを指定された方向に配置するレイアウトマネージャーを生成します。
 
メソッドの概要
 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)
          このクラスでは使用しません。
 
クラス 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

public BoxLayout(Container target,
                 int axis)
コンポーネントを指定された方向に配置するレイアウトマネージャーを生成します。

パラメータ:
target - 配置する必要があるコンテナ
axis - 配置する必要があるコンテナコンポーネントの配置方向。 BoxLayout.X_AXISBoxLayout.Y_AXISBoxLayout.LINE_AXIS または BoxLayout.PAGE_AXIS
例外:
AWTError - axis の値が無効な場合
メソッドの詳細

getTarget

public final Container getTarget()
このレイアウトマネージャーを使用するコンテナを返します。

戻り値:
このレイアウトマネージャーを使用するコンテナ
導入されたバージョン:
1.6

getAxis

public final int getAxis()
コンポーネントの配置に使用された軸を返します。次のいずれかを返します。BoxLayout.X_AXISBoxLayout.Y_AXISBoxLayout.LINE_AXIS、または BoxLayout.PAGE_AXIS のどれか

戻り値:
コンポーネントの配置に使用された軸
導入されたバージョン:
1.6

invalidateLayout

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

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

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

addLayoutComponent

public void addLayoutComponent(String name,
                               Component comp)
このクラスでは使用しません。

定義:
インタフェース LayoutManager 内の addLayoutComponent
パラメータ:
name - コンポーネントの名前
comp - コンポーネント

removeLayoutComponent

public void removeLayoutComponent(Component comp)
このクラスでは使用しません。

定義:
インタフェース LayoutManager 内の removeLayoutComponent
パラメータ:
comp - コンポーネント

addLayoutComponent

public void addLayoutComponent(Component comp,
                               Object constraints)
このクラスでは使用しません。

定義:
インタフェース LayoutManager2 内の addLayoutComponent
パラメータ:
comp - コンポーネント
constraints - 制約

preferredLayoutSize

public Dimension preferredLayoutSize(Container target)
指定されたターゲットコンテナにあるコンポーネントについて、このレイアウトの推奨寸法を返します。

定義:
インタフェース LayoutManager 内の preferredLayoutSize
パラメータ:
target - 配置する必要があるコンテナ
戻り値:
0 以上で Integer.MAX_VALUE 以下のサイズ
例外:
AWTError - ターゲットが BoxLayout コンストラクタに指定された コンテナでない場合
関連項目:
Container, minimumLayoutSize(java.awt.Container), maximumLayoutSize(java.awt.Container)

minimumLayoutSize

public Dimension minimumLayoutSize(Container target)
指定されたターゲットコンテナに含まれるコンポーネントのレイアウトに必要な最小寸法を返します。

定義:
インタフェース LayoutManager 内の minimumLayoutSize
パラメータ:
target - 配置する必要があるコンテナ
戻り値:
0 以上で Integer.MAX_VALUE 以下のサイズ
例外:
AWTError - ターゲットが BoxLayout コンストラクタに指定された コンテナでない場合
関連項目:
preferredLayoutSize(java.awt.Container), maximumLayoutSize(java.awt.Container)

maximumLayoutSize

public Dimension maximumLayoutSize(Container target)
ターゲットコンテナが自身のコンポーネントを配置するときに使用できる、最大の寸法を返します。

定義:
インタフェース LayoutManager2 内の maximumLayoutSize
パラメータ:
target - 配置する必要があるコンテナ
戻り値:
0 以上で Integer.MAX_VALUE 以下のサイズ
例外:
AWTError - ターゲットが BoxLayout コンストラクタに指定された コンテナでない場合
関連項目:
preferredLayoutSize(java.awt.Container), minimumLayoutSize(java.awt.Container)

getLayoutAlignmentX

public float getLayoutAlignmentX(Container target)
コンテナの X 軸に沿った配置方法を返します。ボックスが水平方向である場合は、デフォルトの配置が返されます。そうでない場合は、子を X 軸に沿って配置するのに必要な配置が返されます。

定義:
インタフェース LayoutManager2 内の getLayoutAlignmentX
パラメータ:
target - コンテナ
戻り値:
配置 >= 0 .0f && <= 1.0f
例外:
AWTError - ターゲットが BoxLayout コンストラクタに指定された コンテナでない場合

getLayoutAlignmentY

public float getLayoutAlignmentY(Container target)
コンテナの Y 軸に沿った配置方法を返します。ボックスが垂直方向である場合は、デフォルトの位置合わせ用の値が返されます。そうでない場合は、子を Y 軸に沿って配置するのに必要な位置合わせ用の値が返されます。

定義:
インタフェース LayoutManager2 内の getLayoutAlignmentY
パラメータ:
target - コンテナ
戻り値:
配置 >= 0 .0f && <= 1.0f
例外:
AWTError - ターゲットが BoxLayout コンストラクタに指定された コンテナでない場合

layoutContainer

public void layoutContainer(Container target)
指定されたコンテナを配置する必要があるときに AWT によって呼び出されます。

定義:
インタフェース LayoutManager 内の layoutContainer
パラメータ:
target - レイアウトするコンテナ
例外:
AWTError - ターゲットが BoxLayout コンストラクタに指定された コンテナでない場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。