Memahami Perbezaan antara setSize() dan setPreferredSize()
Apabila berurusan dengan saiz komponen dalam Java, pembangun sering menghadapi dua kaedah: setSize() dan setPreferredSize() . Walaupun kedua-dua kaedah mempunyai nama yang serupa, tingkah laku dan penggunaannya berbeza dengan ketara.
setSize() vs. setPreferredSize():
Perbezaan utama terletak pada kehadiran pengurus reka letak untuk induk komponen bekas.
-
setSize(): Kaedah ini mengatasi saiz komponen secara langsung, tanpa mengira mana-mana pengurus susun atur induk. Ia biasanya digunakan apabila bekas induk tidak mempunyai pengurus reka letak atau apabila anda secara eksplisit ingin menetapkan saiz tertentu untuk komponen.
-
setPreferredSize(): Kaedah ini mencadangkan saiz pilihan untuk komponen tersebut. Pengurus reka letak induk menggunakan maklumat ini untuk menentukan saiz komponen dalam strategi reka letaknya. Ia digunakan apabila pengurus reka letak hadir dan bertanggungjawab untuk meletakkan dan mensaiz komponen.
Garis Panduan Penggunaan:
JFrames dan JPanels:
-
JFrames (tingkap peringkat atas): Gunakan setSize() kerana JFrames tidak mempunyai pengurus susun atur secara lalai.
-
JPanels (dengan pengurus susun atur): Gunakan setPreferredSize() kerana pengurus susun atur akan menentukan saiz panel berdasarkannya saiz pilihan.
Komponen dalam Susun Atur Pengurus:
- Jika induk komponen mempunyai pengurus reka letak: Gunakan setPreferredSize().
- Jika induk komponen tidak mempunyai pengurus susun atur (atau anda mahukan kawalan yang tepat melebihi saiz): Gunakan setSize().
Contoh:
// JFrame (no layout manager)
JFrame frame = new JFrame();
frame.setSize(500, 300); // Use setSize()
// JPanel (with FlowLayout manager)
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(100, 50)); // Use setPreferredSize()
frame.add(panel);
Salin selepas log masuk
Dalam contoh ini, setSize() digunakan untuk JFrame kerana ia tidak mempunyai pengurus susun atur, manakala setPreferredSize() digunakan untuk JPanel kerana ia berada di dalam pengurus FlowLayout.
Atas ialah kandungan terperinci setSize() vs. setPreferredSize(): Bilakah Saya Harus Menggunakan Kaedah Mana di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!