Javaビジュアル・エディタを使用してGridBagLayoutコンテナを作成する場合、コンテナに追加するコンポーネントごとにGridBagConstraints2オブジェクトが自動的にインスタンス化されます。JDeveloperでは、デフォルトの制約値または(XYLayoutのような)別のレイアウトからGridBagLayoutへの変換中に既存のコンポーネントに対して計算された値(あるいはその両方)が使用されます。制約プロパティ・エディタを使用すると、これらの制約を編集できます。
JDeveloperで制約プロパティ・エディタにアクセスするには、次のいずれかを使用します。
「インスペクタ」のコンポーネントのconstraints
プロパティ
プロパティ・エディタの各制約は、次のセクションで指定されるGridBagConstraints2.class
の制約に直接対応しています。
グリッド位置制約X(gridx
)およびY(gridy
)を使用して、コンポーネントの左上隅のグリッド・セル位置を指定します。この制約値は、列または行のセル番号を表す整数です。GridBagLayoutは、行および列の最大値512をサポートしています。XおよびYに指定する値は、512を超えないようにしてください。たとえば、gridx=0
は左端の列、gridy=0
は先頭の行になります。したがって、gridx=0
およびgridy=0
の制約を持つコンポーネントは、グリッドの最初のセル(左上)に配置されます。
gridx
およびgridy
に使用できる、RELATIVE
と呼ばれる別の制約値(デフォルト値)もあります。RELATIVE
は、次のようにコンポーネントを前のコンポーネントと相対的に配置するように指定します。
gridx
で使用した場合、このコンポーネントを、直前に追加された最後のコンポーネントのすぐ右に配置するように指定します。
gridy
で使用した場合、このコンポーネントを、直前に追加された最後のコンポーネントのすぐ下に配置するように指定します。
制約プロパティ・エディタでグリッド位置の「X」または「Y」のRELATIVE
値を指定するには、-1
と入力します。
グリッド位置制約の幅」(gridwidth
)および「高さ」(gridheight
)を使用して、コンポーネントが使用する行(gridwidth
)または列(gridheight
)のセルの数を指定します。この制約値は、ピクセル数ではなく、列または行のセルの数を表す整数です。
gridwidth
およびgridheight
に使用できるその他の制約値には、RELATIVE
および REMAINDER
があります。
RELATIVE
は、このコンポーネントが行(gridwidth
)または列(gridheight
)の最後から2番目のコンポーネントであることを指定します。RELATIVE
を使用するコンポーネントは、最後のセルを除く残りのセルをすべて取得します。たとえば、6列の行で、コンポーネントが3列目から始まる場合、RELATIVE
のgridwidthは、列3、4および5を使用します。
REMAINDER
は、このコンポーネントが行(gridwidth
)または列(gridheight
)の最後のコンポーネントであることを指定します。
RELATIVE
値を指定するには、-1
と入力します。REMAINDER
値を指定するには、0
と入力します。
insets
)を使用して、コンポーネントとその表示領域の端の間の外枠までの空間(パディング)の最小量をピクセル単位で指定します。コンポーネントの上端、左端、下端および右端ごとに個別の値を指定できます。
「サイズ・パディング」は、コンポーネントの内部パディング(セル内のコンポーネントの周囲のスペース)を指定します。「幅」(ipadx
)および「高さ」(ipady
)を使用して、内部パディングのコンポーネントの最小サイズに追加されるスペースをピクセル単位で指定します。
コンポーネントの幅は、少なくとも最小の幅にipadx
を加えた値(ピクセル単位)になります(Javadocコメントではipadx
*2になっていますが、実際のコードでは1回のみ加算されます)。同様に、コンポーネントの高さは、少なくとも最小の高さにipady
を加えた値(ピクセル単位)になります。
例:
幅30ピクセル、高さ20ピクセルのコンポーネントに追加する場合は、次のようになります。
「幅」= 4の場合、コンポーネントの幅は34ピクセルになります。
ipadx
)は、コンポーネントの最小の幅に加算されるピクセル数を指定します。
ipady
)は、コンポーネントの最小の高さに加算されるピクセル数を指定します。
「スペース配分」制約を使用して、コンテナのサイズを変更するときに、スペースを垂直方向(weightx
)および水平方向(weighty
)に配置する方法を指定します。「スペース配分」は、コンテナをデフォルトのサイズから拡大するときに各コンポーネントに割り当てられるスペースを決定します。
たとえば、スペース配分が0.0、0.3および0.2の3つのコンポーネントがある場合、コンテナを拡大すると、スペースは最初のコンポーネントには割り当てられず、3/5が2番目のコンポーネントに割り当てられ、2/5が3番目のコンポーネントに割り当てられます。
注意: すべてのコンポーネントのスペース配分が単一方向でゼロの場合、コンポーネントはそのディメンションのコンテナの中央に集められ、デフォルトのサイズよりも拡大されることはありません。GridBagLayout
は、セルのグリッドとコンテナの端の間にスペースを挿入します。
「スペース配分」の値はdouble
型で、0.0から1.0の範囲の数値で指定します。ゼロは、コンポーネントにはスペースを設定できないことを示し、1.0は、コンポーネントがスペースを完全に共有することを示します。
weightx
)は、コンポーネントの垂直方向のスペース配分です。行のスペース配分は、行の全コンポーネントについて最大のweightx
になるように計算されます。
weighty
)は、コンポーネントの水平方向のスペース配分です。列のスペース配分は、列の全コンポーネントについて最大のweighty
になるように計算されます。
コンポーネントが表示領域より小さい場合は、anchor
制約を使用して、領域内でコンポーネントを配置する場所をレイアウト・マネージャに通知します。anchor
は、コンポーネントのfill
制約に従って、表示領域内のコンポーネントにのみ影響します。
たとえば、コンポーネントのfill
制約値がBOTH
(表示領域を水平方向と垂直方向に塗りつぶす)の場合、コンポーネントは使用可能な領域全体を使用するため、anchor
制約は無効です。anchor
制約を有効にするには、fill
制約値をNONE
、HORIZONTAL
またはVERTICAL
に設定します。
anchor
の値は次のとおりです。
|
|
|
|
|
|
|
|
|
コンポーネントの表示領域がコンポーネントの要求したサイズよりも大きい場合は、fill
制約を使用して、コンポーネントのサイズを変更する必要があるかどうかをレイアウト・マネージャに確認し、必要な場合はその方法を確認します。anchor
制約と同様に、fill
制約は、表示領域内のコンポーネントにのみ影響します。fill
は、コンポーネントを展開して、割り当てられている領域全体を塗りつぶすようにレイアウト・マネージャに通知します。
fill
の値は次のとおりです。
|
コンポーネントのサイズは変更しません。 |
|
コンポーネントのサイズ変更と領域の塗りつぶしを水平方向にのみ行います。 |
|
コンポーネントのサイズ変更と領域の塗りつぶしを垂直方向にのみ行います。 |
|
コンポーネントのサイズを水平方向と垂直方向の両方で変更し、領域を完全に塗りつぶします。 |
Copyright © 1997, 2006, Oracle. All rights reserved.