Dynamischer JPanel-Ersatz in einem JFrame
Der dynamische Austausch eines JPanels in einem JFrame erfordert das Verständnis des Layout-Management-Systems in Swing. Während Sie versucht haben, pack() zum Anpassen des Layouts zu verwenden, regelt es in erster Linie die Abmessungen des Fensters und nicht den Austausch von Komponenten.
Verwenden von CardLayout für die dynamische JPanel-Verwaltung
CardLayout bietet eine elegante Lösung für den Wechsel zwischen mehreren Panels innerhalb eines einzigen Containers. So implementieren Sie es:
Erstellen Sie ein CardLayout-Objekt:
<code class="java">CardLayout cardLayout = new CardLayout();</code>
Legen Sie das CardLayout fest als Layout-Manager für den Container:
<code class="java">parentFrameJPanelBelongsTo.setLayout(cardLayout);</code>
Fügen Sie die Panels zum Container hinzu:
<code class="java">parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID"); parentFrameJPanelBelongsTo.add(newOtherPanel, "NEW_PANEL_ID");</code>
Zwischen Panels wechseln:
<code class="java">cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID");</code>
Rahmen einpacken:
<code class="java">parentFrameJPanelBelongsTo.pack();</code>
Beispielverwendung:
In Ihrem Beispiel können Sie den Code wie folgt ändern:
<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>
Durch die Verwendung von CardLayout können Sie JPanels nahtlos ersetzen ein JFrame im laufenden Betrieb, der eine dynamische und benutzerorientierte Schnittstelle gewährleistet.
Das obige ist der detaillierte Inhalt vonWie kann ich JPanels in einem JFrame dynamisch ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!