Swingでサイズの決まっていないPanelを下揃えする

例えば、

JPanel base = new JPanel();
JPanel sub = new JPanel();

JTextField text = new JTextField("hoge");

text.setAlignement(JCompornent.BOTTOM_ARLIGNEMENT);
sub.add(text);
sub.setAlignement(JCompornent.BOTTOM_ARLIGNEMENT);
base.add(sub);

なんてやるとき、どうにもそのコンポーネントがウィンドウの下の方に表示されない。BoxlayoutやらSpringLayoutをつかっても無駄。理由は単純で、JPanelが最大値を取ってしまって、気の向くままに拡大しちゃうから。

こういうとき、BorderLayoutが実はきいたりするみたい。上記を

JPanel base = new JPanel(new BorderLayout());
JPanel sub = new JPanel();

JTextField text = new JTextField("hoge");

sub.add(text);
base.add(sub, BorderLayout.SOUTH);

とかやると、JPanelのPrefferredSizeを設定しなくともWindowに合わせて下に寄ってくれる。