JavaTM 2 Platform
Std. Ed. v1.3

javax.swing
クラス BoxLayout

java.lang.Object
  |
  +--javax.swing.BoxLayout
すべての実装インタフェース:
LayoutManager, LayoutManager2, Serializable
直系の既知のサブクラス:
DefaultMenuLayout

public class BoxLayout
extends Object
implements LayoutManager2, Serializable

複数のコンポーネントを、垂直方向にも水平方向にも配置できるようにする、レイアウトマネージャです。コンポーネントの配置は折り返さないので、たとえば、垂直に並べられたコンポーネントは、フレームのサイズが変更されても垂直に並んだままです。

水平および垂直の異なる組み合わせを持つ複数のパネルを入れ子にすると、GridBagLayout と同様の効果を簡単に実現できます。上の図では、水平方向に並べられた 2 つのパネルに、垂直方向に並べられた 3 つのコンポーネントがそれぞれ含まれています。

Box のコンテナは、BoxLayout を使用します。これは、フローのレイアウトのデフォルトである JPanel とは異なります。複数のボックスを入れ子にして、それらにコンポーネントを追加し、必要な配置を得ることもできます。

BoxLayout マネージャは、管理するコンポーネントを左から右、あるいは上から下に配置します。BoxLayout を作成する際には、その主軸を X 軸 (左から右への配置) にするか、Y 軸 (上から下への配置) にするかを指定します。コンポーネントは、コンテナに追加された順に左から右、あるいは上から下に並べられます。

BoxLayout を直接使う代わりに、多くのプログラムは Box クラスを使っています。Box クラスは、BoxLayout を使う軽量なコンテナを提供します。また Box は、BoxLayout を使いやすくするためのメソッドも提供します。

BoxLayout は、その望ましい幅 (左から右へのレイアウトの場合) あるいは高さ (上から下へのレイアウトの場合) に従ってコンポーネントを並べようとします。左から右へのレイアウトの場合、すべてのコンポーネントが同じ高さではなくても、BoxLayout は各コンポーネントをもっとも高いコンポーネントと同じ高さに揃えようとします。特定のコンポーネントでそれが不可能な場合は、そのコンポーネントの Y 方向の整列に従って、コンポーネントを縦に整列します。デフォルトでは、コンポーネントの Y 方向の整列の値は 0.5 です。これは、コンポーネントの上下方向の中心の Y 座標が、同じく 0.5 の Y 整列を持つ別のコンポーネントの上下方向の中心と同じになることを意味します。

同様に、垂直方向のレイアウトでは、BoxLayout は列のコンポーネントの幅を、もっとも幅の広いものに揃えようとします。これに失敗した場合は、コンポーネントの X 整列に従って水平方向に整列を行います。

警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。

関連項目:
Box, Component.getAlignmentX(), Component.getAlignmentY(), 直列化された形式

フィールドの概要
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
コンポーネントのレイアウトの方向を上から下に指定します。
コンストラクタの詳細

BoxLayout

public BoxLayout(Container target,
                 int axis)
コンポーネントを左から右、あるいは上から下のどちらにもレイアウトするレイアウトマネージャを作成します。レイアウトの方向は、axis パラメータの指定に従います。
パラメータ:
target - レイアウトする必要があるコンテナ
axis - コンポーネントをレイアウトする軸。左から右へのレイアウトには、BoxLayout.X_AXIS を指定する。上から下へのレイアウトには、BoxLayout.Y_AXIS を指定する
例外:
AWTError - axis の値が無効な場合
メソッドの詳細

invalidateLayout

public void invalidateLayout(Container target)
子のレイアウト情報が変更されたことを示します。キャッシュされていた計算はすべてフラッシュされます。
定義:
インタフェース 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.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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