Penggantian JPanel Dinamik dalam JFrame
Menggantikan JPanel dalam JFrame secara dinamik melibatkan pemahaman sistem pengurusan reka letak dalam Swing. Semasa anda cuba menggunakan pack() untuk melaraskan reka letak, ia terutamanya mengawal dimensi tetingkap dan bukannya mengendalikan penggantian komponen.
Menggunakan CardLayout untuk Pengurusan JPanel Dinamik
CardLayout menyediakan penyelesaian yang elegan untuk bertukar antara berbilang panel dalam satu bekas. Begini cara untuk melaksanakannya:
Buat objek CardLayout:
<code class="java">CardLayout cardLayout = new CardLayout();</code>
Tetapkan CardLayout sebagai pengurus susun atur untuk bekas:
<code class="java">parentFrameJPanelBelongsTo.setLayout(cardLayout);</code>
Tambahkan panel pada bekas:
<code class="java">parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID"); parentFrameJPanelBelongsTo.add(newOtherPanel, "NEW_PANEL_ID");</code>
Tukar antara panel:
<code class="java">cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID");</code>
Pasang bingkai:
<code class="java">parentFrameJPanelBelongsTo.pack();</code>
Contoh Penggunaan:
Dalam contoh anda, anda boleh mengubah suai kod seperti berikut:
<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>
Dengan menggunakan CardLayout, anda boleh menggantikan JPanels dengan lancar dalam JFrame dengan cepat, memastikan antara muka yang dinamik dan responsif pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan JPanels secara Dinamik dalam JFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!