GroupLayoutの考え方1


NetBeansとかGUIビルダでレイアウトする為に作られて、Java SE 6から標準クラスライブラリの仲間入りをしたSwingのレイアウトマネージャ"GroupLayout"だが、手でコーディングしようとするともうほとんど頭の体操に近い状態で、難しいので自分がわかるようにメモしとく。
まず、"GroupLayout"では、水平方向のレイアウト(HorizontalGroup)と垂直方向のレイアウト(VerticalGroup)を別々に定義する必要がある。さらにそれぞれのグループに順次グループ(SequentialGroup)と、平行グループ(ParallelGroup)を入れ子にする事ができる。この入れ子にするときに、垂直方向のレイアウトと水平方向のレイアウトどちらを定義しているかによって、コンポーネントの追加方向が変わるので画面のイメージ図を書いて書くコンポーネントの配置(あのコンポーネントの端っこはこのコンポーネントの端とそろえるとか、そういうの)をイメージ化しておかないと、書きながらレイアウトを考えるのは困難。GUIビルダを使わずに、思いつきでプログラミングするのには向かない。図は水平方向グループ、垂直方向グループと、各入れ子グループの関係。矢印は追加したコンポーネントの並ぶ方向具体例はまた後で書くことにする。

以下は混乱した時の為のまとめ

  • 水平方向のレイアウトと垂直方向のレイアウトを別々に定義
  • 順次グループ(SequentialGroup)と平行グループ(ParallelGroup)を入れ子にできる。
  • 水平方向のレイアウトを定義しているとき
  • 垂直方向のレイアウト(VerticalGroup)を定義しているとき