Rumah >Java >javaTutorial >Mengapa Hanya Panel Teratas Muncul dalam JFrame Saya?

Mengapa Hanya Panel Teratas Muncul dalam JFrame Saya?

Patricia Arquette
Patricia Arquetteasal
2024-11-06 01:15:02199semak imbas

Why Does Only the Top Panel Appear in My JFrame?

Hanya Panel Teratas Muncul dalam JFrame

Dalam JFrame, BorderLayout ialah anak tetingkap kandungan lalai. Apabila menambah komponen tanpa menyatakan kekangan, ia diletakkan di bahagian tengah BorderLayout. Walau bagaimanapun, hanya satu komponen boleh menduduki kawasan ini.

Untuk menyelesaikan isu ini, gunakan kekangan BorderLayout untuk menentukan lokasi setiap panel:

<code class="java">f.add(top, BorderLayout.PAGE_START);
f.add(mid);
f.add(bot, BorderLayout.PAGE_END);</code>

Pengoptimuman Tambahan:

  • Alih keluar f.setSize(500, 500); dan gunakan pack() sebaliknya, kerana ia menetapkan saiz bingkai berdasarkan kandungannya.
  • Tukar f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); kepada f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); untuk menamatkan GUI dengan betul apabila ditutup.
  • Alih keluar in.setVisible(true); apabila komponen menjadi kelihatan apabila ditambahkan pada bekas yang boleh dilihat.
  • Kemas kini pengisytiharan kelas kepada kelas awam EncDecExample dan bukannya kelas awam EncDecExample memanjangkan JFrame untuk mengelakkan daripada menyimpan rujukan yang tidak perlu pada bingkai.

Atas ialah kandungan terperinci Mengapa Hanya Panel Teratas Muncul dalam JFrame Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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