• title: JPanelの展開と折り畳み tags: [JPanel, BorderLayout] author: aterai pubdate: 2004-11-01T01:05:24+09:00 description: JPanelの展開と折り畳みを行います。

概要

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

サンプルコード

public void initComps(java.util.List<ExpansionPanel> list, ExpansionEvent e) {
  setVisible(false);
  centerBox.removeAll();
  northBox.removeAll();
  southBox.removeAll();
  ExpansionPanel es = (ExpansionPanel) e.getSource();
  boolean flag = false;
  for(ExpansionPanel exp: list) {
    if(exp==es && exp.isSelected()) {
      centerBox.add(exp);
      flag = true;
    }else if(flag) {
      exp.setSelected(false);
      southBox.add(exp);
    }else{
      exp.setSelected(false);
      northBox.add(exp);
    }
  }
  setVisible(true);
}
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、ボタンが押されるたびにそのパネルの展開(子コンポーネントの追加)と折り畳み(子コンポーネントの削除)を行っています。同時にBorderLayoutNORTHCENTERSOUTHに各パネルを振り分けを行い、展開されるパネル一つだけが推奨サイズが無視されて任意の高さに拡張されるCENTERに配置されます。


L2FProd.com - Common Components にあるJOutlookBarで、アニメーション付きでパネルの展開や折り畳みが可能です。ソースも公開されているので参考にしてみてください。

参考リンク

コメント