JScrollPaneとJPanelを組み合わせたスクロール領域にコンポーネントを削除したり追加したりする方法。
単純に
単純に
panel.removeAll();
panel.add(new SomeComponent());
panel.validate();
panel.repaint();
とやるだけだとうまくスクロールがリフレッシュされない。
内部コンポーネントを配置していくことによって収まりきらない場合パネルは推奨サイズから拡張されることになります。残念ながら拡張されたサイズはパネル内からコンポーネントを削除しても縮小されたりすることはありません。
そこで、JPanel#removeAllをした場合に限った話ですが、パネル内からコンポーネントを全削除した後にパネルサイズを推奨サイズに強制的に戻してやります。
panel.removeAll();
// 拡張されたパネルサイズを推奨サイズに戻してやる
panel.setSize(panel.getPreferredSize());
panel.add(new SomeComponent());
panel.validate();
panel.repaint();
こんな感じでOK。
投稿者紹介
-
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。
最近のエントリ
- レポート2019.10.28ユニキャストレストランを開催しました🍳
- レポート2019.08.29社内研修ワークショップ~マシュマロ・チャレンジ~
- レポート2019.08.06Computex/InnoVEX 出展者・通訳として参加してきました。
- レポート2018.06.12Computex 2018 レポート