コンポーネントを格子状に配置するレイアウトマネージャです。
GridBagLayout クラスのグリッドはコンポーネントによって不均一で、また自由に場所を指定するのが面倒です。
LatticeLayout クラスは GirdBagLayout クラスの使いにくさを解消するために作成しました。
ダウンロード
使い方
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 |
valign |
コンポーネントが表示領域より小さい位場合に、縦位置の描画位置を指定する |
|
TOP |
fill |
コンポーネントが表示領域より小さい場合に、拡大表示を行うかどうか |
NONE |
行わない |
HORIZONTAL |
横方向のみ拡大 |
VERTICAL |
縦方向のみ拡大 |
BOTH |
双方向とも拡大 |
|
NONE |
adjust |
コンポーネントが表示領域より大きい場合に、縮小表示を行うかどうか |
NONE |
行わない |
HORIZONTAL |
横方向のみ縮小 |
VERTICAL |
縦方向のみ縮小 |
BOTH |
双方向とも縮小 |
|
NONE |
詳しくは レイアウトマネージャを作ろう
をご参照ください。
(Dec. 2003) |