JFrame 中的動態 JPanel 替換
動態替換 JFrame 中的 JPanel 涉及了解 Swing 中的佈局管理系統。當您嘗試使用 pack() 調整佈局時,它主要控制視窗的尺寸,而不是處理元件替換。
使用 CardLayout 進行動態 JPanel 管理
CardLayout提供了一個優雅的解決方案,用於在單一容器內的多個面板之間進行切換。實作方法如下:
建立CardLayout 物件:
<code class="java">CardLayout cardLayout = new CardLayout();</code>
:
<code class="java">parentFrameJPanelBelongsTo.setLayout(cardLayout);</code>
將面板加到容器:
<code class="java">parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID"); parentFrameJPanelBelongsTo.add(newOtherPanel, "NEW_PANEL_ID");</code>
<code class="java">cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID");</code>
在面板之間切換
:<code class="java">parentFrameJPanelBelongsTo.pack();</code>
收起框架
:<code class="java">CustomJPanelWithComponentsOnIt panel = new CustomJPanelWithComponentsOnIt(); // Create and set the CardLayout CardLayout cardLayout = new CardLayout(); parentFrameJPanelBelongsTo.setLayout(cardLayout); // Add the panels to the frame parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID"); // Switch to the desired panel cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID"); // Pack the frame parentFrameJPanelBelongsTo.pack();</code>
:
範例用法:在您的範例中,您可以修改程式碼如下:透過利用CardLayout,您可以無縫替換JPanels動態JFrame,確保動態且使用者回應的介面。以上是如何動態替換 JFrame 中的 JPanel?的詳細內容。更多資訊請關注PHP中文網其他相關文章!