JPanelの展開と折りたたみ

編集者:Terai Atsuhiro
作成日:2004-11-01
更新日:2021-07-03 (土) 03:42:14

概要

JPanelの展開と折りたたみを行います。

http://terai.xrea.jp/swing/expandablepanel/screenshot.png

サンプルコード

public void initComps(Vector panelList, ExpansionEvent e) {
  setVisible(false);
  centerBox.removeAll();
  northBox.removeAll();
  southBox.removeAll();
  ExpansionPanel es = (ExpansionPanel) e.getSource();
  boolean southFlag = false;
  for(Iterator it=panelList.iterator();it.hasNext();) {
    ExpansionPanel exp = (ExpansionPanel) it.next();
    if(exp==es && exp.isSelected()) {
      centerBox.add(exp);
      southFlag = true;
    }else if(southFlag) {
      exp.setSelected(false);
      southBox.add(exp);
    }else{
      exp.setSelected(false);
      northBox.add(exp);
    }
  }
  setVisible(true);
}

解説

上記のサンプルでは、ボタンが押されるたびにそのパネルの展開と折りたたみを行い、同時にBorderLayoutの上辺、中央、下辺に各パネルを振り分けています。このため展開されるパネルはひとつだけになります。

参考リンク

コメント