StackOverflow では、ユーザーがこのような質問をすることが何度もありました...
JPanelchild を含むmainがありますJPanel。ユーザーがボタンをクリックすると、子JPanelは別の に変更されますJPanel。どうすればこれを達成できますか。
多くの場合、ユーザーは実際にこの問題を実装しようとしましたが、機能させることができません。
この質問に答えるときはいつでも、このようなことをするように言います(簡単に言えば)...
JPanel myFrame = new JPanel();
myFrame.remove(oldPanel);
myFrame.add(newPanel);
これは非常に正当な答えだと思います。個人的には、これを自分の Java プロジェクトの多くで問題なく使用しています。しかし、私はいつも私の答えに反対票を投じており、誰もが「使用するCardLayout」と言っています。
だから私の質問は、なぜ誰もCardLayoutが私の答えに反対票を投じるに値するほどに魅了されているのですか? CardLayout上記のコードを使用してパネルを追加/削除するのではなく、使用することを選択する必要があるのはなぜですか?
CardLayoutさらなる質問として、動的な JPanels を持つインターフェイスを引き続き提案していただけますか。たとえば、私のプログラムのほとんどはカスタム プラグイン フレームワークを実装しており、何百ものJPanels. プログラムの通常の使用では、ほとんどのパネルが実際に読み込まれたり必要になったりすることはありません。このタイプのシナリオでは、私のコーディング アプローチが最善の解決策CardLayoutでしょうJPanelsか?