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 に適しています。1.4 以降、すべての JavaBeansTM 用の長期間の格納サポートが java.beans
パッケージに追加されています。XMLEncoder
を参照してください。
修飾子と型 | フィールドと説明 |
---|---|
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)
このクラスでは使用しません。
|
public static final int X_AXIS
public static final int Y_AXIS
public static final int LINE_AXIS
ComponentOrientation
プロパティーの決定に従って、テキスト行の方向にコンポーネントの配置を指定します。public static final int PAGE_AXIS
ComponentOrientation
プロパティーの決定に従って、複数ページにまたがって行が進んでいく方向にコンポーネントが配置されるように指定します。@ConstructorProperties(value={"target","axis"}) public BoxLayout(Container target, int axis)
target
- 配置する必要があるコンテナaxis
- コンポーネントを配置する際に基準とする軸。BoxLayout.X_AXIS
、BoxLayout.Y_AXIS
、BoxLayout.LINE_AXIS
、BoxLayout.PAGE_AXIS
のいずれかAWTError
- axis
の値が無効の場合public final Container getTarget()
public final int getAxis()
BoxLayout.X_AXIS
、BoxLayout.Y_AXIS
、BoxLayout.LINE_AXIS
、または BoxLayout.PAGE_AXIS
public void invalidateLayout(Container target)
このメソッドは、コンテナで無効なメソッドが呼び出されたときに AWT によって呼び出されます。無効なメソッドはイベントスレッドに非同期的に呼び出すことができるため、このメソッドも非同期的に呼び出すことができます。
invalidateLayout
、インタフェース: LayoutManager2
target
- 影響を受けるコンテナAWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合public void addLayoutComponent(String name, Component comp)
addLayoutComponent
、インタフェース: LayoutManager
name
- コンポーネントの名前comp
- コンポーネントpublic void removeLayoutComponent(Component comp)
removeLayoutComponent
、インタフェース: LayoutManager
comp
- コンポーネントpublic void addLayoutComponent(Component comp, Object constraints)
addLayoutComponent
、インタフェース: LayoutManager2
comp
- コンポーネントconstraints
- 制約public Dimension preferredLayoutSize(Container target)
preferredLayoutSize
、インタフェース: LayoutManager
target
- 配置する必要があるコンテナAWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合Container
, minimumLayoutSize(java.awt.Container)
, maximumLayoutSize(java.awt.Container)
public Dimension minimumLayoutSize(Container target)
minimumLayoutSize
、インタフェース: LayoutManager
target
- 配置する必要があるコンテナAWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合preferredLayoutSize(java.awt.Container)
, maximumLayoutSize(java.awt.Container)
public Dimension maximumLayoutSize(Container target)
maximumLayoutSize
、インタフェース: LayoutManager2
target
- 配置する必要があるコンテナAWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合preferredLayoutSize(java.awt.Container)
, minimumLayoutSize(java.awt.Container)
public float getLayoutAlignmentX(Container target)
getLayoutAlignmentX
、インタフェース: LayoutManager2
target
- コンテナAWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合public float getLayoutAlignmentY(Container target)
getLayoutAlignmentY
、インタフェース: LayoutManager2
target
- コンテナAWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合public void layoutContainer(Container target)
layoutContainer
、インタフェース: LayoutManager
target
- レイアウトするコンテナAWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.