デフォルトのJPanelを保持するメインのJFrameがあります。この JPanel を使用して、さまざまな JPanel をアプリケーションにアタッチして、アプリケーションをブラウジングする効果をシミュレートしようとしています。CardLayout が機能するためには、通常、JFrame に JPanel に表示されるもの (ボタン、ドロップダウン ボックスなど) を制御する何らかの方法が必要であることに気付きました。 JPanel) を JFrame のデフォルトの JPanel にロードし、ユーザーがそのホーム JPanel で使用可能なクリック可能なボタン/アイコンを使用してナビゲートできるようにします。
JFrame とデフォルトの JPanel は残りの JPanel とは別のクラスにあるため、(プライベートであるため) デフォルトの JPanel にアクセスして、いずれかの JPanel のボタンをクリックして表示される内容を変更するのに問題があります。他のクラス。これを回避する方法はありますか?
また、アプリケーションに必要なすべてのボタンを JFrame に付けて、そこから表示される JPanel を制御すると機能しますか? 必要に応じてボタンを表示/非表示にすることができますが、これは理にかなっていますか?
これは、JFrame クラスで呼び出しているコードです。
private void jButton45MouseClicked(java.awt.event.MouseEvent evt) {
CardLayout card= (CardLayout) displayPanel.getLayout();
card.show(displayPanel, "register");
}
displayPanel はすべてのカードを循環するデフォルトのパネルであり、jButton45 は JFrame の「登録」というタイトルのボタンです。「登録」は、表示しようとしている JPanel 変数の名前です。