Rumah >Java >javaTutorial >Bagaimana untuk Memusatkan JFrame dengan Tepat pada Skrin di Java?

Bagaimana untuk Memusatkan JFrame dengan Tepat pada Skrin di Java?

Patricia Arquette
Patricia Arquetteasal
2024-11-30 06:19:11800semak imbas

How to Accurately Center a JFrame on the Screen in Java?

Memahami Dimensi JFrame dan Menentukan Pusat Tepat

Di Jawa, apabila bekerja dengan JFrames, adalah penting untuk memahami perbezaan antara dimensi keseluruhan bingkai dan kawasan boleh lukis dalam anak tetingkap kandungan.

JFrame terdiri daripada berbilang komponen, termasuk bingkai, JRootPane dan JLayeredPane. Anak tetingkap kandungan berada dalam JLayeredPane. Adalah penting untuk ambil perhatian bahawa dimensi bingkai termasuk sempadan, manakala kawasan boleh lukis tidak.

Oleh itu, untuk mengira bahagian tengah yang tepat, anda perlu mempertimbangkan dimensi anak tetingkap kandungan dan bukannya saiz keseluruhan bingkai. Titik tengah anak tetingkap kandungan boleh ditentukan menggunakan dimensi terlaras ini.

Sebagai contoh, jika anda mencipta JFrame dengan saiz lalai 200x200 piksel, titik tengah anak tetingkap kandungan ialah 92x81 piksel (dengan andaian lebar sempadan 8 piksel).

Untuk memusatkan JFrame pada skrin, anda boleh menggunakan setLocationRelativeTo(null) kaedah. Walau bagaimanapun, jika anda ingin menentukan pusat tepat skrin secara dinamik, tanpa mengira saiz semasanya, anda boleh menggunakan penyelesaian berikut:

import java.awt.*;

public class ScreenCenter {

    public static Point getScreenCenter(Component component) {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension componentSize = component.getSize();

        int x = (screenSize.width - componentSize.width) / 2;
        int y = (screenSize.height - componentSize.height) / 2;

        return new Point(x, y);
    }

    public static void main(String[] args) {
        // Create a JFrame and set its size
        JFrame frame = new JFrame("Frame");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Center the JFrame on the screen using the getScreenCenter method
        Point centerPoint = getScreenCenter(frame);
        frame.setLocation(centerPoint.x, centerPoint.y);

        // Display the JFrame
        frame.setVisible(true);
    }
}

Kod ini secara automatik melaraskan kedudukan JFrame untuk mengekalkan pusatnya berdasarkan saiz skrin semasa, memastikan pengalaman pengguna yang konsisten.

Atas ialah kandungan terperinci Bagaimana untuk Memusatkan JFrame dengan Tepat pada Skrin di Java?. 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