Swing/ExpandablePanel のバックアップ差分(No.20)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/ExpandablePanel へ行く。
- 1 (2004-11-01 (月) 01:05:24)
- 2 (2004-11-01 (月) 01:15:40)
- 3 (2004-11-02 (火) 05:21:12)
- 4 (2004-11-04 (木) 10:05:10)
- 5 (2005-04-28 (木) 04:33:05)
- 6 (2005-05-11 (水) 00:30:39)
- 7 (2005-07-02 (土) 16:32:44)
- 8 (2005-07-20 (水) 21:36:40)
- 9 (2005-10-28 (金) 18:41:21)
- 10 (2006-01-29 (日) 01:31:07)
- 11 (2006-02-27 (月) 15:52:24)
- 12 (2006-10-12 (木) 12:04:02)
- 13 (2007-05-16 (水) 14:57:02)
- 14 (2007-11-14 (水) 13:28:23)
- 15 (2009-01-20 (火) 14:51:35)
- 16 (2013-04-14 (日) 00:13:38)
- 17 (2014-11-18 (火) 01:49:52)
- 18 (2015-04-16 (木) 11:37:23)
- 19 (2017-03-07 (火) 14:38:54)
- 20 (2018-01-10 (水) 18:04:31)
- 21 (2019-12-31 (火) 19:16:16)
- 22 (2021-07-03 (土) 03:42:14)
- 追加された行はこの色です。
- 削除された行はこの色です。
--- category: swing folder: ExpandablePanel title: JPanelの展開と折り畳み tags: [JPanel, BorderLayout] author: aterai pubdate: 2004-11-01T01:05:24+09:00 description: JPanelにBorderLayoutを設定し、JButtonのクリックで子コンポーネントの配置を入れ替えることで、それらの展開と折り畳みを行います。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTMQbS7ipI/AAAAAAAAAY4/xXDc9VVk87A/s800/ExpandablePanel.png --- * 概要 [#summary] `JPanel`に`BorderLayout`を設定し、`JButton`のクリックで子コンポーネントの配置を入れ替えることで、それらの展開と折り畳みを行います。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTMQbS7ipI/AAAAAAAAAY4/xXDc9VVk87A/s800/ExpandablePanel.png) * サンプルコード [#sourcecode] #code(link){{ private void initComps( List<? extends AbstractExpansionPanel> list, JComponent source) { setVisible(false); centerBox.removeAll(); northBox.removeAll(); southBox.removeAll(); boolean insertSouth = false; for (AbstractExpansionPanel exp : list) { if (source.equals(exp) && exp.isSelected()) { centerBox.add(exp); insertSouth = true; continue; } exp.setSelected(false); if (insertSouth) { southBox.add(exp); } else { northBox.add(exp); } } setVisible(true); } }} * 解説 [#explanation] 上記のサンプルでは、ボタンが押されるたびにそのパネルの展開(子コンポーネントの追加)と折り畳み(子コンポーネントの削除)を行っています。同時に`BorderLayout`の`NORTH`、`CENTER`、`SOUTH`に各パネルを振り分けを行い、展開されるパネル一つだけが推奨サイズ(`PreferredSize`)が無視されて任意の高さに拡張される`CENTER`に配置されます。 上記のサンプルでは、各`JButton`が押されるたびに、対象パネルの展開(子コンポーネントの追加)と折り畳み(子コンポーネントの削除)を行っています。同時に`BorderLayout`の`NORTH`、`CENTER`、`SOUTH`に各パネルを振り分けを行い、展開されるパネル一つだけが推奨サイズ(`PreferredSize`)が無視されて任意の高さに拡張される`CENTER`に配置されます。 ---- [http://common.l2fprod.com/ L2FProd.com - Common Components] にある`JOutlookBar`で、アニメーション付きでパネルの展開や折り畳みが可能です。ソースも公開されているので参考にしてみてください。 * 参考リンク [#reference] - [[JPanelをアコーディオン風に展開>Swing/AccordionPanel]] * コメント [#comment] #comment #comment