GridBagLayout

GUIコンポーネントの配置を制御するLayoutManagerを使う。VisualBasicなど普通の統合開発環境の場合はコンポーネント(コントロール)をマウスを使って画面を構築していく。ただ、これは絶対座標を使って作っていくので、フォームの大きさを変更しても追随してくれない。LayoutManagerを使うと大きさを変更しても自動的にLayoutしてくれるのでよいということらしい。どこまでそのような要望があるかといえば疑問だけれども。
Javaの場合はコーディングでコンポーネントを貼り付けていくので動的にコンポーネントを変更することがやりやすい。マウスで作っていく場合は、例えば処理中にボタンを作ったりすることはなかなか難しい。そういうコーディングがいいのかどうかは別として。ちなみにVisualBasic.NETはマウスで画面を作っても、裏でコードを生成していたので、やろうと思えばできそうだ。
GridBagLayoutはJavaのLayoutManagerでも最も柔軟性があり、かつちょっと面倒な仕様になっている。このLayoutを使う場合はConstraintと呼ばれる制約を設定することにより配置が決定される。確かに面白そうなので使ってみることにした。Gridというくらいなので升目を考慮してどこの升目を起点に大きさはどの程度で、どちらに詰める、など細かい設定が可能で、かつ使ってみると案外簡単だった。