TITLE:JComponentをリスト状に並べる


JComponentをリスト状に並べる

編集者:Terai Atsuhiro
作成日:2004-03-22
更新日:2018-10-20 (土) 19:09:16

概要

高さの異なるコンポーネントをリスト状に並べてみます。

#screenshot

サンプルコード

private final Box pnl = Box.createVerticalBox();
private final Vector list = new Vector();
public void addComp(JComponent c) {
  list.addElement(c);
  pnl.removeAll();
  for(int i=0;i<list.size();i++) {
    JComponent tmp = (JComponent)list.get(i);
    Dimension d = tmp.getPreferredSize();
    tmp.setMaximumSize(new Dimension(Integer.MAX_VALUE, d.height));
    pnl.add(tmp);
  }
  pnl.add(Box.createVerticalGlue());
  pnl.revalidate();
}
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルでは、Box.createVerticalBoxを使ってリスト状に並べています。この際、各コンポーネントの高さは変化せず、幅だけフレームサイズに追従するように、JComponent#setMinimumSizeを指定しています。

コンポーネントの高さの合計がフレームの高さより小さい場合は、下部に余白が出来るように、最後にBox.createVerticalGlueを追加しています。

コメント

  • SpringLayoutではなく、BoxLayoutを使うようにサンプルを変更しました。 -- terai