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);
他のレイアウトマネージャと変わりはない。
最終更新:2007年01月08日 23:19