JavaTM 2
Platform
Std. Ed. v1.4.0

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 の使用に有用な簡易メソッドも用意されています。入れ子になった複数のボックスへのコンポーネント追加によって、必要な配置を容易に得ることができます。

警告: このクラスの直列化オブジェクトは今後リリースされる Swing との互換性はありません。現在サポートされている直列化は、短期間の保管、または同じバージョンの Swing が稼働しているアプリケーション間の RMI に適しています。1.4 からは、すべての JavaBeansTM の長期間の保管が java.beans パッケージで追加サポートされています。XMLEncoder を参照してください。

関連項目:
Box, ComponentOrientation, JComponent.getAlignmentX(), JComponent.getAlignmentY()

フィールドの概要
static int LINE_AXIS
          ターゲットコンテナの ComponentOrientation プロパティの決定に従って、1 行のテキストの方向にコンポーネントの配置を指定します。
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)
          このクラスでは使用しません。
 float getLayoutAlignmentX(Container target)
          コンテナの X 軸に沿った配置を返します。
 float getLayoutAlignmentY(Container target)
          コンテナの Y 軸の位置合わせ用の値を返します。
 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 プロパティの決定に従って、1 行のテキストの方向にコンポーネントの配置を指定します。ターゲットコンテナの ComponentOrientation プロパティの決定に従って、1 行のテキストの方向にコンポーネントの配置を指定します。

関連項目:
定数フィールド値

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 の値が無効な場合
メソッドの詳細

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 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.