Swing/AccordionPanel のバックアップの現在との差分(No.3)
2022-11-03 (木) 20:50:58
概要
JPanel
の展開、折り畳みをアコーディオン風に行います。
Screenshot
Advertisement
サンプルコード
- Swing/ExpandPanel?
- Swing/SpringLayout
解説
- 各パネルに配置されたタイトルラベルがクリックされた場合、
JPanel#setVisible(boolean)
メソッドを使用してパネルの表示・非表示を切り替え - パネルを非表示にするだけではその高さが更新されないので以下のように
JPanel#getPreferredSize()
メソッドもオーバーライド#spanend #spanadd @Override public Dimension getPreferredSize() { #spanend Dimension d = label.getPreferredSize(); if (panel.isVisible()) { d.height += panel.getPreferredSize().height; } return d; #spanadd } #spanend #spanadd
参考リンク
- JPanelの展開と折り畳み
- BoxLayoutでリスト状に並べる
- L2FProd.com - Common Components
-
JTaskPane
でアニメーション付きのパネルの展開や折り畳みが可能 - ソースも公開されているので
com.l2fprod.common.swing.JCollapsiblePane
などが参考になる
-
- JTreeのノードを検索する
- 展開アニメーションのサンプル