ホームページ > Java > &#&チュートリアル > Java で JFrame を画面の中央に正確に配置するにはどうすればよいですか?

Java で JFrame を画面の中央に正確に配置するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-30 06:19:11
オリジナル
726 人が閲覧しました

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 の位置を自動的に調整して、次の基準に基づいて JFrame の中心を維持します。現在の画面サイズに合わせて、一貫したユーザー エクスペリエンスを確保します。

以上がJava で JFrame を画面の中央に正確に配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート