CardLayoutとJPanelの手動追加/削除の違いは何ですか?
は、私が子供JPanel
を含むメインJPanel
を持っている...ユーザがこのような質問をStackOverflowの上で何度もありました。ユーザーが ボタンをクリックすると、子JPanel
は別のJPanel
に変更されます。どのようにすれば これを達成できますか?
多くの場合、ユーザーは実際にこの問題を実装しようとしましたが、動作させることはできません。私はこの質問に答えるたびに、私はこのような何か(簡単に言えば)を行うためにそれらを教え
...
JPanel myFrame = new JPanel();
myFrame.remove(oldPanel);
myFrame.add(newPanel);
私はかなり合法的な答えとしてこれを見て、私は個人的の多くで、これを使用しています自分のJavaプロジェクトに問題はありません。しかし、私はいつも私の答えのために下降音を受け取り、誰もが "CardLayout
を使う"と言うだけです。
私の質問は、誰もがなぜCardLayout
に魅了されているのですか?上記のコードを使用してパネルを追加/削除するのではなく、なぜCardLayout
を使用するのですか?
さらに詳しい質問として、動的JPanelsを持つインターフェイスのためにCardLayout
を提案してください。たとえば、ほとんどのプログラムでは、何百ものJPanels
が存在するカスタムプラグインフレームワークが実装されていますが、パネルは実際に必要なときだけロードして表示します。プログラムの通常の使用のために、パネルのほとんどが実際にロードされたり、必要とされることはありません。このタイプのシナリオでは、CardLayout
は、ほとんどが使用されないにもかかわらず実際にJPanels
のすべてを作成する必要があることを理解しているので、私のコーディング手法は最良の解決策でしょうか? CardLayoutで
あなたは建設的な方法であなたの質問を表現する良い仕事をしたと思います。私はそれが閉じられないことを願っています。 –
ありがとう - 私は意図的にそれを建設的な質問にしようとしました、そして良いフィードバックを得ることはうれしいです。 – wattostudios
* "実際に必要なだけのパネルをロードして表示するだけです。" *レイジーインスタンシエーションは 'CardLayout'でも使用でき、1000sのパネルをサポートしています。 –