Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Menggantikan JPanels secara Dinamik dalam JFrame?

Patricia Arquette
Lepaskan: 2024-10-24 17:20:03
asal
1053 orang telah melayarinya

How to Dynamically Replace JPanels in a JFrame?

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:

  1. Buat objek CardLayout:

    <code class="java">CardLayout cardLayout = new CardLayout();</code>
    Salin selepas log masuk
  2. Tetapkan CardLayout sebagai pengurus susun atur untuk bekas:

    <code class="java">parentFrameJPanelBelongsTo.setLayout(cardLayout);</code>
    Salin selepas log masuk
  3. Tambahkan panel pada bekas:

    <code class="java">parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID");
    parentFrameJPanelBelongsTo.add(newOtherPanel, "NEW_PANEL_ID");</code>
    Salin selepas log masuk
  4. Tukar antara panel:

    <code class="java">cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID");</code>
    Salin selepas log masuk
  5. Pasang bingkai:

    <code class="java">parentFrameJPanelBelongsTo.pack();</code>
    Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan