Go to Contents Go to Java Page

J2SE 1.5 虎の穴 Softwares in the Box

 
 

格子レイアウトマネージャ LatticeLayout

 
 
LatticeLayout

コンポーネントを格子状に配置するレイアウトマネージャです。

GridBagLayout クラスのグリッドはコンポーネントによって不均一で、また自由に場所を指定するのが面倒です。

LatticeLayout クラスは GirdBagLayout クラスの使いにくさを解消するために作成しました。

 

ダウンロード

JAR ファイル lattice.jar
ソース lattice.zip

 

JavaDoc JavaDoc
サンプル LayoutSample.java

 

使い方

LatticeLayout クラスは GridBagLayout クラスと同様に LatticeConstraints クラスとペアで使用します。

レイアウトに関する情報は LatticeConstraints クラスに書くようにします。

 

生成

引数に縦横の格子数を指定します。

        LatticeLayout layout = new LatticeLayout(6, 4);

この場合、横 6、縦 4 の格子が生成されます。

 

レイアウト

コンテナにコンポーネントを張る前に、レイアウトマネージャに LatticeConstraints クラスを使用してレイアウト情報を渡しておきます。例えば、以下のように記述します。

        LatticeConstraints cons = new LatticeConstraints();
 
        JButton button1 = new JButton("Button 1"); 
        cons.x = 0;
        cons.y = 0;
        cons.width = 3;
        cons.height = 2;
        cons.fill = LatticeConstraints.BOTH;
        layout.setConstraints(button1, cons);
        container.add(button1);
 
        JButton button2 = new JButton("Button 2"); 
        cons.x = 4;
        cons.y = 0;
        cons.width = 1;
        cons.height = 1;
        cons.adjust = LatticeConstraints.BOTH;
        layout.setConstraints(button2, cons);
        container.add(button2);

この例では 2 つのボタンをコンテナに張っています。

1 つめボタンは格子の (0, 0) の位置で、横を格子の 3 マス、縦を 2 マス使用します。また、コンポーネントの preferredSize が指定している大きさより小さい場合は横、縦とも拡大するようにします。

2 つめボタンは格子の (4, 0) の位置で、縦横とも格子の 1を使用します。また、コンポーネントの preferredSize が指定している大きさより大きい場合は横、縦とも縮小するようにします。

このように LatticeConstraints クラスで指定できます。設定できる項目を次に示します。

項目 説明 取りうる値 デフォルト値
x コンポーネントの横位置 0 以上 格子数未満
0
y コンポーネントの縦位置 0 以上 格子数未満
0
width コンポーネントの幅 (格子を単位とする) 1 以上 格子数以下
1
height コンポーネントの高さ (格子を単位とする) 1 以上 格子数以下
1
halign コンポーネントが表示領域より小さい位場合に、横位置の描画位置を指定する
LEFT
CENTER 中央
RIGHT
LEFT
valign コンポーネントが表示領域より小さい位場合に、縦位置の描画位置を指定する
TOP
CENTER 中央
BOTTOM
TOP
fill コンポーネントが表示領域より小さい場合に、拡大表示を行うかどうか
NONE 行わない
HORIZONTAL 横方向のみ拡大
VERTICAL 縦方向のみ拡大
BOTH 双方向とも拡大
NONE
adjust コンポーネントが表示領域より大きい場合に、縮小表示を行うかどうか
NONE 行わない
HORIZONTAL 横方向のみ縮小
VERTICAL 縦方向のみ縮小
BOTH 双方向とも縮小
NONE

 

詳しくは レイアウトマネージャを作ろう をご参照ください。

 

(Dec. 2003)

 
 
Go to Contents Go to Java Page