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
Mary-Kate Olsenasal
2024-12-02 17:23:11673semak imbas

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

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);

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!

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