Rumah > Java > javaTutorial > Bagaimana untuk Memusatkan Komponen dengan Tepat dalam JFrame Boleh Resizable?

Bagaimana untuk Memusatkan Komponen dengan Tepat dalam JFrame Boleh Resizable?

Mary-Kate Olsen
Lepaskan: 2024-12-02 17:23:11
asal
665 orang telah melayarinya

How to Accurately Center Components within a Resizable JFrame?

Mencari Pusat Tepat JFrame Boleh Resizable

Latar Belakang:
Apabila mereka bentuk aplikasi JFrame, kedudukan dengan tepat elemen pada skrin adalah penting. Walau bagaimanapun, menentukan titik tengah yang tepat boleh menjadi mencabar, terutamanya apabila JFrame boleh diubah saiz.

Masalahnya:
Soalan ini menyerlahkan dua kebimbangan utama:

  1. Walaupun menentukan lebar 400, objek secara konsisten melantun dari skrin JFrame 10 piksel pendek.
  2. Cara menentukan titik tengah tepat JFrame boleh ubah saiz tanpa mengira saiznya.

Penyelesaian:
1. Mengimbangi JFrame Border:
Percanggahan dalam kedudukan objek berkemungkinan disebabkan oleh sempadan JFrame. Bingkai mempunyai sempadan hiasan yang mengurangkan kawasan boleh dicat sebenar. Untuk mengambil kira ini, kirakan lebar dan tinggi seperti berikut:

width - border.width
height - border.height
Salin selepas log masuk

2. Pengiraan Titik Pusat Dinamik:
Untuk mendapatkan titik tengah yang tepat pada sebarang saiz skrin, ikuti langkah berikut:

  1. Dapatkan dimensi JFrame semasa: frame.getWidth() dan frame.getHeight ().
  2. Kira koordinat titik tengah: lebar / 2 dan tinggi / 2.
  3. Laraskan untuk sempadan (jika perlu): lebar / 2 - sempadan.lebar / 2 dan tinggi / 2 - sempadan.tinggi / 2.

Alternatif Penyelesaian:
Sebagai alternatif, pertimbangkan untuk menggunakan kaedah setLocationRelativeTo(null) untuk memusatkan JFrame berbanding dengan skrin, tanpa mengira saiznya.

Contoh yang Diperbaiki:
Untuk menggunakan pengiraan titik tengah yang dipertingkatkan dalam kod anda:

int centerX = (frame.getWidth() / 2) - (frame.getBorder().getBorderInsets().right / 2);
int centerY = (frame.getHeight() / 2) - (frame.getBorder().getBorderInsets().bottom / 2);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memusatkan Komponen dengan Tepat dalam JFrame Boleh Resizable?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan