※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

GridBagLayoutに関するメモ

GridBagLayoutとはjava.awt.*パッケージに属する最難関レイアウトである。
基本的にはGridLayoutに似た面があり、格子状にコンポーネントを配置する。
その際(配置の際)、様々な制約を課すことができるレイアウト。

GridBagLayout g = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();

レイアウトマネージャと制約者(Constraints)が必要。


実際に利用する場合。(コンポーネントJLabelの例)

Container cp = frame.getContentPane();
JLabel label = new JLabel

c.gridx = 0;
c.gridy = 0;
c.gridwidth  = 1;
c.gridheight = 1;
g.setConstraints(label,c);
cp.add(label);

解説


制約者にコンポーネント配置の制約を教える


c.gridx = 0;

左上を原点(0,0)としてxは0番目の格子のところ。

c.gridy = 0;

左上を原点(0,0)としてyは0番目の格子のところ。

c.gridwidth = 1;

横幅(width)はマスにして1マス分を占領する。

c.gridheight = 1;

縦幅(height)はマスにして1マス分を占領する。

レイアウトマネージャにコンポーネントに対する制約を教える。


g.setConstraints(label,c);

labelというコンポーネントは、現在のcの各フィールドの値にのっとって配置する。
という情報をレイアウトマネージャgに伝えるメソッドがsetConstraints

g.setConstraints(コンポーネント,制約者);

つまり

g.setConstraints(JComponent,GridBagConstraints);

のように使う。

実際にコンテンツ区画に加える。

コンテンツ区画に加えるとき、今までどおりaddを用いる。

cp.add(label);

他のレイアウトマネージャと変わりはない。