Menyelesaikan Kedudukan Pusat Tepat dalam JFrame Boleh Resizable
Pertanyaan anda mengemukakan dua cabaran: pengesanan perlanggaran tepat dengan tepi bingkai dan menentukan pusat tepat, tanpa mengira skrin saiz.
Pembetulan Pengesanan Perlanggaran
Imbang 10 piksel yang diperhatikan dalam pengesanan perlanggaran berkemungkinan berpunca daripada salah faham tentang dimensi bingkai. JFrame termasuk sempadan, JRootPane dan komponen lain di sekeliling anak tetingkap kandungan sebenar. Oleh itu, anda perlu melaraskan pengiraan anda untuk mengambil kira lebar dan ketinggian sempadan.
Untuk mendapatkan kawasan boleh lukis yang tepat, gunakan formula:
Width - border.width Height - border.height
Penentuan Pusat Skrin Tepat
Untuk mencari bahagian tengah skrin yang tepat, pertimbangkan berikut:
Pilihan nilai yang hendak digunakan bergantung pada tujuan anda:
Kaedah untuk Memusatkan Bingkai
Untuk mudah memusatkan bingkai pada skrin, panggil Window#setLocationRelativeTo(null).
Sebagai alternatif, anda boleh menggunakan formula berikut:
JFrame frame = ...; Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int x = (screenSize.width - frame.getWidth()) / 2; int y = (screenSize.height - frame.getHeight()) / 2; frame.setLocation(x, y);
Atas ialah kandungan terperinci Bagaimana untuk Memusatkan JFrame Boleh Resizable dengan Tepat dan Mengesan Perlanggaran dengan Tepinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!