モジュール java.desktop
パッケージ 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プロパティに基づいて、単語のレイアウト方法を1行にまとめます。 コンテナの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
関連項目: