Rumah >Java >javaTutorial >Mengapa Hanya Komponen Teratas Dipaparkan dalam JFrame Saya?

Mengapa Hanya Komponen Teratas Dipaparkan dalam JFrame Saya?

Barbara Streisand
Barbara Streisandasal
2024-11-06 02:03:02529semak imbas

Why is Only the Top Component Displayed in My JFrame?

Hanya Komponen Teratas Dipaparkan dalam JFrame: Memahami Isu

Dalam pengaturcaraan GUI Java, apabila menambah komponen pada JFrame, ia adalah penting untuk memahami BorderLayout secara lalai. Apabila komponen ditambah tanpa menetapkan kekangan, ia secara automatik menduduki zon CENTER bagi BorderLayout. Walau bagaimanapun, kawasan tengah ini hanya boleh memaparkan satu komponen sahaja.

Oleh itu, dalam coretan kod yang disediakan, komponen paling atas, yang berkemungkinan JPanel, diletakkan di PUSAT, menyembunyikan komponen lain.

Penyelesaian untuk Memaparkan Berbilang Komponen

Untuk menyelesaikan isu ini dan memaparkan semua komponen, adalah perlu untuk menentukan kekangan yang sesuai apabila menambahkannya pada JFrame. BorderLayout menyediakan pelbagai kekangan, seperti UTARA, SELATAN, TIMUR, BARAT dan PUSAT.

Untuk kesan serta-merta, kod berikut boleh digunakan:

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

Dengan menetapkan kekangan ini, panel atas akan menduduki kedudukan atas (PAGE_START), panel tengah akan mengisi ruang yang tinggal (tanpa kekangan), dan panel bawah akan diletakkan di bahagian bawah (PAGE_END).

Tambahan Pengesyoran

Selain daripada menyelesaikan isu kekangan, beberapa pengoptimuman tambahan boleh dipertimbangkan:

  1. Gunakan kaedah pek(): Alih keluar f. setSize(500, 500); dan panggil pack() sejurus sebelum setVisible(true). Ini akan menentukan saiz bingkai yang sesuai berdasarkan saiz pilihan komponennya.
  2. Tingkatkan penamatan GUI: Ubah f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); kepada f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);. Ini akan menamatkan tetingkap GUI dengan betul dengan mengalih keluarnya daripada skrin, dan bukannya menutup keseluruhan aplikasi.
  3. Hapuskan panggilan setVisible() yang tidak perlu: Komponen menjadi kelihatan apabila ditambahkan ke atas- bekas tingkat. Oleh itu, in.setVisible(true); dan panggilan serupa boleh diabaikan.
  4. Perhalusi pengisytiharan kelas: Tukar kelas awam EncDecExample memanjangkan JFrame ke kelas awam EncDecExample. Ini mengekalkan rujukan kepada bingkai, memastikan gelagat GUI yang betul.

Atas ialah kandungan terperinci Mengapa Hanya Komponen Teratas Dipaparkan 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