首頁 >Java >java教程 >如何在Java中將JFrame準確地居中在螢幕上?

如何在Java中將JFrame準確地居中在螢幕上?

Patricia Arquette
Patricia Arquette原創
2024-11-30 06:19:11728瀏覽

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

了解JFrame 尺寸並確定精確中心

在Java 中,使用JFrame 時,了解框架整體尺寸之間的差異至關重要以及內容窗格中的可繪製區域。

JFrame 由多個組件組成,包括框架、JRootPane 和 JLayeredPane。內容窗格駐留在 JLayeredPane 內。需要注意的是,框架的尺寸包括邊框,而可繪製區域則不包括。

因此,要準確計算確切的中間位置,您需要考慮內容窗格的尺寸而不是框架的整體尺寸。內容窗格的中心點可以使用這些調整後的尺寸來確定。

例如,如果您建立預設大小為 200x200 像素的 JFrame,則內容窗格的中心點將為 92x81 像素(假設邊框寬度為 8 像素)。

要將 JFrame 在螢幕上置中,可以使用 setLocationRelativeTo(null) 方法。但是,如果您想動態確定螢幕的確切中心,無論其當前大小如何,您可以採用以下解決方案:

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

此程式碼會自動調整JFrame 的位置以根據當前螢幕尺寸,確保一致的使用者體驗。

以上是如何在Java中將JFrame準確地居中在螢幕上?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn