Rumah > Java > javaTutorial > Bagaimana untuk Memusatkan JFrame Boleh Resizable dengan Tepat dan Mengesan Perlanggaran dengan Tepinya?

Bagaimana untuk Memusatkan JFrame Boleh Resizable dengan Tepat dan Mengesan Perlanggaran dengan Tepinya?

DDD
Lepaskan: 2024-12-04 09:29:11
asal
924 orang telah melayarinya

How to Accurately Center a Resizable JFrame and Detect Collisions with its Edges?

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

Penentuan Pusat Skrin Tepat

Untuk mencari bahagian tengah skrin yang tepat, pertimbangkan berikut:

  • Perspektif Bingkai: Pusat berada pada (100x100) berdasarkan dimensi bingkai.
  • Perspektif Anak Tetingkap Kandungan: pusat berada di (92x81) berdasarkan anak tetingkap kandungan dimensi.

Pilihan nilai yang hendak digunakan bergantung pada tujuan anda:

  • Untuk meletakkan bingkai, gunakan titik tengah bingkai.
  • Untuk mengecat, gunakan titik tengah anak tetingkap kandungan.

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

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan