|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.swing.GroupLayout
public class GroupLayout
GroupLayout は、Container 内に配置するためにコンポーネントを階層的にグループ化する LayoutManager です。GroupLayout はビルダー用ですが、ハンドコーディングすることもできます。グループ化は、Group クラスのインスタンスによって行われます。GroupLayout は、2 種類のグループをサポートします。順次グループは、子要素を 1 つずつ順番に配置します。並列グループは、子要素を 4 とおりの方法で配置します。
各グループに任意の数の要素 (Group、Component、またはギャップ) を含めることができます。ギャップは、最小サイズ、適切なサイズ、および最大サイズを持つ不可視コンポーネントと見なすことができます。GroupLayout は、適切なギャップもサポートします。適切なギャップの値は、LayoutStyle から得られます。
要素はバネに似ています。各要素には、最小、適切、および最大で指定された範囲があります。ギャップの範囲は、開発者が指定するか、LayoutStyle によって決定されます。Component の範囲は、Component の getMinimumSize メソッド、getPreferredSize メソッド、および getMaximumSize メソッドによって決定されます。また、Component を追加するときに、そのコンポーネントの範囲ではなく、特定の範囲を指定して使用することもできます。Group の範囲は、グループの種類によって決定されます。ParallelGroup の範囲は、その要素の範囲の最大値です。SequentialGroup の範囲は、その要素の範囲の合計値です。
GroupLayout は、各軸を別々に扱います。つまり、水平軸を表すグループと垂直軸を表すグループが存在することになります。水平グループは、水平軸に沿った最小サイズ、適切なサイズ、および最大サイズを決定し、グループ内のコンポーネントの x の値と幅を設定します。垂直グループは、垂直軸に沿った最小サイズ、適切なサイズ、および最大サイズを決定し、グループ内のコンポーネントの y の値と高さを設定します。各 Component は、水平グループと垂直グループの両方に属している必要があります。そうでない場合は、配置中あるいは最小サイズ、適切なサイズ、または最大サイズが要求されたときに IllegalStateException がスローされます。
次の図に、水平軸に沿った順次グループを示します。順次グループには 3 つのコンポーネントが含まれています。並列グループは、垂直軸に沿って使用されました。
各軸を別々に扱うため、図には各グループの範囲と各軸に沿った要素が表示されています。各コンポーネントの範囲は軸上に投影されており、グループは青 (水平) と赤 (垂直) で描画されています。わかりやすいように、順次グループ内の各要素は間隔を空けて並べられています。
水平軸に沿った順次グループは、青い直線で描画されています。順次グループは、グループ内の子要素の合計値になっている点に注意してください。
水平軸に沿った並列グループは、各コンポーネントの高さの最大値になっています。3 つのコンポーネントはすべて同じ高さなので、並列グループも同じ高さになります。
次の図に、3 つの同じコンポーネントを示します。ただし、並列グループは水平軸、順次グループは垂直軸に沿っています。
3 つのコンポーネントのうちもっとも値が大きいのは c1 なので、並列グループのサイズは c1 と同じになります。c2 と c3 は c1 より小さいので、コンポーネントに配置方法が指定されていればその方法、指定されていない場合は並列グループのデフォルトの配置方法で配置されます。図の c2 と c3 は、LEADING の配置方法で作成されました。コンポーネントが右から左へ配置されている場合、c2 と c3 は逆向きに配置されます。
次の図に、水平軸と垂直軸に沿った順次グループを示します。
GroupLayout は、Component 間にギャップを挿入する機能を提供します。ギャップのサイズは、LayoutStyle のインスタンスによって決定されます。この機能は、setAutoCreateGaps メソッドを使って有効にすることができます。同様に、setAutoCreateContainerGaps メソッドを使って、親コンテナの端とコンテナに接するコンポーネント間にギャップを挿入することもできます。
次のコードでは、ある列に 2 つのラベル、次の列に 2 つのテキストフィールドが続くパネルを構築します。
JComponent panel = ...;
GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);
// Turn on automatically adding gaps between components
layout.setAutoCreateGaps(true);
// Turn on automatically creating gaps between components that touch
// the edge of the container and the container.
layout.setAutoCreateContainerGaps(true);
// Create a sequential group for the horizontal axis.
GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
// The sequential group in turn contains two parallel groups.
// One parallel group contains the labels, the other the text fields.
// Putting the labels in a parallel group along the horizontal axis
// positions them at the same x location.
//
// Variable indentation is used to reinforce the level of grouping.
hGroup.addGroup(layout.createParallelGroup().
addComponent(label1).addComponent(label2));
hGroup.addGroup(layout.createParallelGroup().
addComponent(tf1).addComponent(tf2));
layout.setHorizontalGroup(hGroup);
// Create a sequential group for the vertical axis.
GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();
// The sequential group contains two parallel groups that align
// the contents along the baseline. The first parallel group contains
// the first label and text field, and the second parallel group contains
// the second label and text field. By using a sequential group
// the labels and text fields are positioned vertically after one another.
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE).
addComponent(label1).addComponent(tf1));
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE).
addComponent(label2).addComponent(tf2));
layout.setVerticalGroup(vGroup);
実行すると、次のものが生成されます。
この配置は、次のもので構成されます。
Group の add メソッドを使用して間接的に行われます。
add メソッドが呼び出し側を返します。これにより、簡単にメソッド呼び出しを連鎖させることができます。たとえば、group.addComponent(label1).addComponent(label2); は group.addComponent(label1); group.addComponent(label2); と同等です。
Group には、public コンストラクタがありません。代わりに、GroupLayout の create メソッドを使用してください。
| 入れ子のクラスの概要 | |
|---|---|
static class |
GroupLayout.Alignment
ParallelGroup がその子を配置するときに選択できる方法の列挙です。 |
class |
GroupLayout.Group
Group は、GroupLayout でサポートされる 2 種類のオペレーションの基盤になります。 |
class |
GroupLayout.ParallelGroup
子の配置とサイズ設定を行う Group です。 |
class |
GroupLayout.SequentialGroup
要素の配置とサイズ設定を 1 つずつ順番に行う Group です。 |
| フィールドの概要 | |
|---|---|
static int |
DEFAULT_SIZE
特定の範囲値として使用するべきコンポーネントからのサイズ (ギャップ) を示します。 |
static int |
PREFERRED_SIZE
特定の範囲値として使用するべきコンポーネントからの適切なサイズ (ギャップ) を示します。 |
| コンストラクタの概要 | |
|---|---|
GroupLayout(Container host)
指定された Container の GroupLayout を作成します。 |
|
| メソッドの概要 | |
|---|---|
void |
addLayoutComponent(Component component,
Object constraints)
親コンテナに Component が追加されたことを示す通知です。 |
void |
addLayoutComponent(String name,
Component component)
親コンテナに Component が追加されたことを示す通知です。 |
GroupLayout.ParallelGroup |
createBaselineGroup(boolean resizable,
boolean anchorBaselineToTop)
ベースラインに沿って要素を配置する ParallelGroup を作成し、返します。 |
GroupLayout.ParallelGroup |
createParallelGroup()
配置方法 Alignment.LEADING で ParallelGroup を作成し、返します。 |
GroupLayout.ParallelGroup |
createParallelGroup(GroupLayout.Alignment alignment)
指定の配置方法で ParallelGroup を作成し、返します。 |
GroupLayout.ParallelGroup |
createParallelGroup(GroupLayout.Alignment alignment,
boolean resizable)
指定の配置方法と指定のサイズ変更動作で ParallelGroup を作成し、返します。 |
GroupLayout.SequentialGroup |
createSequentialGroup()
SequentialGroup を作成し、返します。 |
boolean |
getAutoCreateContainerGaps()
コンテナとこのコンテナに接するコンポーネント間のギャップが自動的に作成される場合は、 true を返します。 |
boolean |
getAutoCreateGaps()
コンポーネント間のギャップが自動的に作成される場合は、 true を返します。 |
boolean |
getHonorsVisibility()
コンポーネントのサイズおよび配置の設定の際、コンポーネントの可視設定を考慮するかどうかを返します。 |
float |
getLayoutAlignmentX(Container parent)
x 軸方向の配置を返します。 |
float |
getLayoutAlignmentY(Container parent)
y 軸方向の配置を返します。 |
LayoutStyle |
getLayoutStyle()
コンポーネント間の適切なギャップの計算に使用する LayoutStyle を返します。 |
void |
invalidateLayout(Container parent)
レイアウトを無効にします。 |
void |
layoutContainer(Container parent)
指定されたコンテナを配置します。 |
void |
linkSize(Component... components)
指定のコンポーネントを、適切なサイズ、最小サイズ、または最大サイズを考慮せず、同じサイズに設定します。 |
void |
linkSize(int axis,
Component... components)
指定のコンポーネントを、適切なサイズ、最小サイズ、または最大サイズを考慮せず、同じサイズに設定し、指定の軸に沿って配置します。 |
Dimension |
maximumLayoutSize(Container parent)
指定のコンテナの最大サイズを返します。 |
Dimension |
minimumLayoutSize(Container parent)
指定のコンテナの最小サイズを返します。 |
Dimension |
preferredLayoutSize(Container parent)
指定のコンテナの適切なサイズを返します。 |
void |
removeLayoutComponent(Component component)
親コンテナから Component が削除されたことを示す通知です。 |
void |
replace(Component existingComponent,
Component newComponent)
既存のコンポーネントを新しいコンポーネントで置き換えます。 |
void |
setAutoCreateContainerGaps(boolean autoCreateContainerPadding)
コンテナと、このコンテナのボーダーに接するコンポーネント間のギャップを、自動的に作成するかどうかを返します。 |
void |
setAutoCreateGaps(boolean autoCreatePadding)
コンポーネント間のギャップを自動的に作成するかどうかを返します。 |
void |
setHonorsVisibility(boolean honorsVisibility)
コンポーネントのサイズおよび配置の設定の際、コンポーネントの可視設定を考慮するかどうかを設定します。 |
void |
setHonorsVisibility(Component component,
Boolean honorsVisibility)
サイズおよび配置の設定の際、コンポーネントの可視設定を考慮するかどうかを設定します。 |
void |
setHorizontalGroup(GroupLayout.Group group)
Group が、水平軸に沿ってコンポーネントの配置とサイズを設定するように設定します。 |
void |
setLayoutStyle(LayoutStyle layoutStyle)
コンポーネント間の適切なギャップの計算に使用する LayoutStyle を設定します。 |
void |
setVerticalGroup(GroupLayout.Group group)
Group が、垂直軸に沿ってコンポーネントの配置とサイズを設定するように設定します。 |
String |
toString()
GroupLayout の文字列表現を返します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| フィールドの詳細 |
|---|
public static final int DEFAULT_SIZE
GroupLayout.Group,
定数フィールド値public static final int PREFERRED_SIZE
GroupLayout.Group,
定数フィールド値| コンストラクタの詳細 |
|---|
public GroupLayout(Container host)
Container の GroupLayout を作成します。
host - Container。GroupLayout がその LayoutManager
IllegalArgumentException - ホストが null の場合| メソッドの詳細 |
|---|
public void setHonorsVisibility(boolean honorsVisibility)
true は、見えないコンポーネントを配置の一部として扱わないことを示します。値 false は、コンポーネントの配置およびサイズ設定の際、可視設定を考慮しないことを示します。
値 false は、コンポーネントの可視設定が動的に変更された場合に、周囲のコンポーネントやサイズを変更したくない場合に使用します。
可視設定が明示的に指定されていないコンポーネントには、指定された値が使用されます。
デフォルトは true です。
honorsVisibility - コンポーネントのサイズおよび配置の設定時に コンポーネントの可視設定を考慮するかどうかsetHonorsVisibility(Component,Boolean)public boolean getHonorsVisibility()
public void setHonorsVisibility(Component component,
Boolean honorsVisibility)
Boolean.TRUE は、見えない component を配置の一部として扱わないことを示します。値 false は、component の配置およびサイズの設定の際、可視設定を考慮しないことを示します。値 null は、単一の引数メソッド setHonorsVisibility によって指定された値が使用されることを示します。
component が Container の子でない場合、この GroupLayout がマネージャーとなり、Container に追加されます。
component - コンポーネントhonorsVisibility - サイズおよび配置の設定時に component の可視設定を考慮するかどうか
IllegalArgumentException - component が null の場合setHonorsVisibility(Component,Boolean)public void setAutoCreateGaps(boolean autoCreatePadding)
true で、SequentialGroup に二つのコンポーネントを追加した場合、この二つのコンポーネント間のギャップは自動的に作成されます。デフォルトは false です。
autoCreatePadding - コンポーネント間のギャップを 自動的に作成するかどうかpublic boolean getAutoCreateGaps()
true を返します。
truepublic void setAutoCreateContainerGaps(boolean autoCreateContainerPadding)
false です。
autoCreateContainerPadding - コンテナと、このコンテナのボーダーに接するコンポーネント間のギャップを自動的に 作成するかどうかpublic boolean getAutoCreateContainerGaps()
true を返します。
truepublic void setHorizontalGroup(GroupLayout.Group group)
Group が、水平軸に沿ってコンポーネントの配置とサイズを設定するように設定します。
group - 水平軸に沿って配置とサイズを 設定する Group
IllegalArgumentException - グループが null の場合public void setVerticalGroup(GroupLayout.Group group)
Group が、垂直軸に沿ってコンポーネントの配置とサイズを設定するように設定します。
group - 垂直軸に沿って配置とサイズを 設定する Group
IllegalArgumentException - グループが null の場合public GroupLayout.SequentialGroup createSequentialGroup()
SequentialGroup を作成し、返します。
SequentialGrouppublic GroupLayout.ParallelGroup createParallelGroup()
Alignment.LEADING で ParallelGroup を作成し、返します。これは、より汎用性の高い createParallelGroup(Alignment) メソッドのカバーメソッドです。
ParallelGroupcreateParallelGroup(Alignment)public GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment)
ParallelGroup を作成し、返します。これは、より汎用性の高い createParallelGroup(Alignment,boolean) メソッド (2 番目の引数の値が true) のカバーメソッドです。
alignment - グループの要素の配置方法
ParallelGroup
IllegalArgumentException - alignment が null の場合createBaselineGroup(boolean, boolean),
GroupLayout.ParallelGroup
public GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment,
boolean resizable)
ParallelGroup を作成し、返します。alignment 引数は、グループがいっぱいにならないように子要素を配置する方法を指定します。たとえば、ParallelGroup の引数 TRAILING の値が 100 で、子に必要な値が 50 の場合、この子は 50 の位置に配置されます (コンポーネントの方向は左から右)。
ベースライン引数は、垂直軸でのみ使用します。ベースライン引数により、水平軸に沿って作成された ParallelGroup は、LEADING として処理されます。
ベースライングループの動作の詳細は、ParallelGroup を参照してください。
alignment - グループの要素の配置方法resizable - グループのサイズ変更が可能な場合は true、グループの サイズ変更ができない場合は、適切なサイズがグループの最小サイズおよび 最大サイズとして使用される
ParallelGroup
IllegalArgumentException - alignment が null の場合createBaselineGroup(boolean, boolean),
GroupLayout.ParallelGroup
public GroupLayout.ParallelGroup createBaselineGroup(boolean resizable,
boolean anchorBaselineToTop)
ParallelGroup を作成し、返します。
resizable - グループのサイズ変更が可能かどうかanchorBaselineToTop - ベースラインのアンカー位置が グループの丈夫であるか下部であるかcreateBaselineGroup(boolean, boolean),
GroupLayout.ParallelGrouppublic void linkSize(Component... components)
これを複数回使用して、任意の数のコンポーネントに同じサイズを割り当てることができます。
リンクを持つコンポーネントのサイズは変更できません。
components - 同じサイズでない Component コンポーネント
IllegalArgumentException - components が null または null を含む場合linkSize(int,Component[])
public void linkSize(int axis,
Component... components)
これを複数回使用して、任意の数のコンポーネントに同じサイズを割り当てることができます。
リンクを持つ Component のサイズは変更できません。
components - 同じサイズでない Component コンポーネントaxis - サイズをリンクする軸。 SwingConstants.HORIZONTAL または SwingConstans.VERTICAL
IllegalArgumentException - components が null であるか、 components が null を含むか、または axis が SwingConstants.HORIZONTAL でも SwingConstants.HORIZONTAL でもない場合
public void replace(Component existingComponent,
Component newComponent)
existingComponent - 削除され、newComponent で 置き換えられるコンポーネントnewComponent - existingComponent の位置に 挿入されるコンポーネント
IllegalArgumentException - どちらかのコンポーネントが null または existingComponent である場合、このレイアウトマネージャーでは 管理されないpublic void setLayoutStyle(LayoutStyle layoutStyle)
LayoutStyle を設定します。値 null は、LayoutStyle のインスタンスを共用することを示します。
layoutStyle - 使用する LayoutStyleLayoutStylepublic LayoutStyle getLayoutStyle()
LayoutStyle を返します。これは、setLayoutStyle に指定された値 (null の場合がある) を返します。
LayoutStyle
public void addLayoutComponent(String name,
Component component)
Component が追加されたことを示す通知です。このメソッドは直接呼び出すべきではありません。Group メソッドを使って、Component を追加するようにしてください。
LayoutManager 内の addLayoutComponentname - コンポーネントに関連付けられた文字列component - 追加される Componentpublic void removeLayoutComponent(Component component)
Component が削除されたことを示す通知です。このメソッドは直接呼び出すべきではありません。親 Container 上で remove メソッドを呼び出すようにしてください。
LayoutManager 内の removeLayoutComponentcomponent - 削除されるコンポーネントComponent.remove(java.awt.MenuComponent)public Dimension preferredLayoutSize(Container parent)
LayoutManager 内の preferredLayoutSizeparent - 適切なサイズを返すコンテナ
parent の適切なサイズ
IllegalArgumentException - parent が、これを作成したときに使用した Container でない場合
IllegalStateException - このレイアウトに、水平グループにも垂直グループにも属さない コンポーネントが追加された場合Container.getPreferredSize()public Dimension minimumLayoutSize(Container parent)
LayoutManager 内の minimumLayoutSizeparent - サイズを返すコンテナ
parent の最小サイズ
IllegalArgumentException - parent が、これを作成したときに使用した Container でない場合
IllegalStateException - このレイアウトに、水平グループにも垂直グループにも属さない コンポーネントが追加された場合Container.getMinimumSize()public void layoutContainer(Container parent)
LayoutManager 内の layoutContainerparent - 配置されるコンテナ
IllegalStateException - このレイアウトに、水平グループにも垂直グループにも属さない コンポーネントが追加された場合
public void addLayoutComponent(Component component,
Object constraints)
Component が追加されたことを示す通知です。このメソッドは直接呼び出すべきではありません。Group メソッドを使って、Component を追加するようにしてください。
LayoutManager2 内の addLayoutComponentcomponent - 追加されたコンポーネントconstraints - コンポーネントを配置する位置の説明public Dimension maximumLayoutSize(Container parent)
LayoutManager2 内の maximumLayoutSizeparent - サイズを返すコンテナ
parent の最大サイズ
IllegalArgumentException - parent が、これを作成したときに使用した Container でない場合
IllegalStateException - このレイアウトに、水平グループにも垂直グループにも属さない コンポーネントが追加された場合Container.getMaximumSize()public float getLayoutAlignmentX(Container parent)
LayoutManager2 内の getLayoutAlignmentXparent - この LayoutManager をホストする Container
.5 を返す
IllegalArgumentException - parent が、これを作成したときに使用した Container でない場合public float getLayoutAlignmentY(Container parent)
LayoutManager2 内の getLayoutAlignmentYparent - この LayoutManager をホストする Container
.5 を返す
IllegalArgumentException - parent が、これを作成したときに使用した Container でない場合public void invalidateLayout(Container parent)
LayoutManager2 内の invalidateLayoutparent - この LayoutManager をホストする Container
IllegalArgumentException - parent が、これを作成したときに使用した Container でない場合public String toString()
GroupLayout の文字列表現を返します。このメソッドはデバッグ用であり、返される文字列の内容および形式は実装によって異なります。
Object 内の toStringGroupLayout の文字列表現
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。