在此 Java Swing 應用程式中,需要根據使用者操作將 JFrame 中的 JPanel 與另一個 JPanel 交換。為了探索實現此目的的適當方法,測試了以下程式碼:
panel = new CustomJPanelWithComponentsOnIt(); parentFrameJPanelBelongsTo.pack();
但是,此方法無法切換面板。
解決方案:利用CardLayout
此場景的理想解決方案在於利用CardLayout,這是一種佈局管理器,可以顯示多個面板,同時有選擇地在給定時間僅顯示一個面板。
要實作CardLayout,請執行下列步驟可以採取:
建立CardLayout 物件:
CardLayout cardLayout = new CardLayout();
設定將容納面板的容器的佈局(例如, JFrame):
parentFrameJPanelBelongsTo.setLayout(cardLayout);
使用CardLayout 的約束將面板添加到容器中:
parentFrameJPanelBelongsTo.add(new CustomJPanelWithComponentsOnIt(), "panel1"); parentFrameJPanelBelongsTo.add(new AnotherJPanel(), "panel2");
將初始面板設定為顯示:
cardLayout.show(parentFrameJPanelBelongsTo, "panel1");
依照使用者互動動態改變活動面板:
cardLayout.show(parentFrameJPanelBelongsTo, "panel2");
以上是如何在 JFrame 中動態交換面板?的詳細內容。更多資訊請關注PHP中文網其他相關文章!