|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.swing.BoxLayout
複数のコンポーネントを、垂直方向にも水平方向にも配置できるようにする、レイアウトマネージャです。コンポーネントは折り返されずに配置されるので、たとえば、垂直に並べられたコンポーネントは、フレームのサイズが変更されても垂直に並んだままです。
水平および垂直の異なる組み合わせを持つ複数のパネルを入れ子にすると、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 |
フィールドの詳細 |
public static final int X_AXIS
public static final int Y_AXIS
public static final int LINE_AXIS
ComponentOrientation
プロパティの決定に従って、1 行のテキストの方向にコンポーネントの配置を指定します。ターゲットコンテナの ComponentOrientation
プロパティの決定に従って、1 行のテキストの方向にコンポーネントの配置を指定します。
public static final int PAGE_AXIS
ComponentOrientation
プロパティの決定に従って、数行のテキストがページをまたがってフローする方向にコンポーネントが配置されるように指定します。
コンストラクタの詳細 |
public BoxLayout(Container target, int axis)
target
- 配置する必要があるコンテナaxis
- コンポーネントの配置方向。BoxLayout.X_AXIS
、BoxLayout.Y_AXIS
、BoxLayout.LINE_AXIS
、または BoxLayout.PAGE_AXIS
のどれか
AWTError
- axis
の値が無効な場合メソッドの詳細 |
public void invalidateLayout(Container target)
このメソッドは、コンテナで無効なメソッドが呼び出されたときに AWT によって呼び出されます。無効なメソッドはイベントスレッドに非同期的に呼び出すことができるため、このメソッドも非同期的に呼び出すことができます。
LayoutManager2
内の invalidateLayout
target
- 影響を受けるコンテナ
AWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合public void addLayoutComponent(String name, Component comp)
LayoutManager
内の addLayoutComponent
name
- コンポーネントの名前comp
- コンポーネントpublic void removeLayoutComponent(Component comp)
LayoutManager
内の removeLayoutComponent
comp
- コンポーネントpublic void addLayoutComponent(Component comp, Object constraints)
LayoutManager2
内の addLayoutComponent
comp
- コンポーネントconstraints
- 制約public Dimension preferredLayoutSize(Container target)
LayoutManager
内の preferredLayoutSize
target
- 配置する必要があるコンテナ
AWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合Container
,
minimumLayoutSize(java.awt.Container)
,
maximumLayoutSize(java.awt.Container)
public Dimension minimumLayoutSize(Container target)
LayoutManager
内の minimumLayoutSize
target
- 配置する必要があるコンテナ
AWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合preferredLayoutSize(java.awt.Container)
,
maximumLayoutSize(java.awt.Container)
public Dimension maximumLayoutSize(Container target)
LayoutManager2
内の maximumLayoutSize
target
- 配置する必要があるコンテナ
AWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合preferredLayoutSize(java.awt.Container)
,
minimumLayoutSize(java.awt.Container)
public float getLayoutAlignmentX(Container target)
LayoutManager2
内の getLayoutAlignmentX
target
- コンテナ
AWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合public float getLayoutAlignmentY(Container target)
LayoutManager2
内の getLayoutAlignmentY
target
- コンテナ
AWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合public void layoutContainer(Container target)
LayoutManager
内の layoutContainer
target
- 配置するコンテナ
AWTError
- ターゲットが BoxLayout コンストラクタに指定されたコンテナでない場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.