JavaでJFrameを画面の中央に表示する方法
JFrameはFrameクラスのサブクラスであり、フレームに追加されたコンポーネントは「コンテンツ」と呼ばれ、contentPaneによって管理されます。JFrameにコンポーネントを追加する場合は、フレーム本体に直接追加するのではなく、contentPane経由で追加するのが推奨されています。JFrameは境界線・タイトルバー・ボタンを持つWindowのようなウィンドウであり、Java Swingアプリケーションの大部分はこのJFrameをベースに実装されています。
デフォルトの状態では、JFrameは画面の左上に表示されます。これを画面中央に表示したい場合は、Windowクラスが提供するsetLocationRelativeTo()メソッドを使用します。
構文
public void setLocationRelativeTo(Component c)
引数には基準となるコンポーネントを指定します。nullを渡した場合は、スクリーン全体を基準としてウィンドウが中央に配置されます。なお、setSize()でウィンドウサイズを設定してから呼び出すと、正確な位置計算が行われるため安全です。
コード例
import javax.swing.*;
import java.awt.*;
public class JFrameCenterPositionTest extends JFrame {
public JFrameCenterPositionTest() {
setTitle("JFrameCenter Position");
add(new JLabel("JFrame set to center of the screen", SwingConstants.CENTER), BorderLayout.CENTER);
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // このメソッドにより、JFrameが画面の中央に表示される
setVisible(true);
}
public static void main(String[] args) {
new JFrameCenterPositionTest();
}
}
コードのポイント
setTitle(): ウィンドウのタイトルを設定します。add(new JLabel(...), BorderLayout.CENTER): 中央揃えのラベルをコンテンツペインに追加しています。setSize(400, 300): ウィンドウの幅と高さをピクセル単位で指定します。setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE): 閉じるボタン押下時にアプリケーションを終了させます。setLocationRelativeTo(null): nullを指定することで、画面中央にウィンドウが表示されます。setVisible(true): ウィンドウを可視化して画面に表示します。
実行結果
プログラムを実行すると、以下のようにJFrameが画面の中央に表示されます。

-
【Python】Tkinterでウィンドウを画面の中央に配置する方法
Tkinterで作成したウィンドウを画面の中央に配置したいケースはよくあります。本記事では、tk::PlaceWindow メソッドを使った簡単な方法と、ジオメトリ(geometry)を計算してプログラム的に中央へ配置する方法の2つを紹介します。 方法1:tk::PlaceWindow を使う(最も簡単) Tkinterには、ウィンドウを画面中央に配置するための組み込みコマンド tk::PlaceWindow が用意されています。このメソッドに対象となるトップレベル(toplevel)ウィンドウを引数として渡し、配置位置として「center」を指定するだけで、ウィンドウを画面の中央に表示でき
-
Windows 10で画面を複製する方法!ショートカットキーと設定画面からの手順を解説
現代のワークスタイルにおいて、複数のディスプレイの活用はますます重要になっています。Windows 10では「プロジェクト」メニューから簡単に画面を複製(ミラーリング)したり、拡張表示したりすることができ、生産性を大きく向上させられます。この記事では、Windows 10で画面を複製する具体的な手順をわかりやすく解説します。 Windows 10で画面を複製するメリット Windows 10では、用意されたオプションから非常に簡単に画面を複製・拡張できます。画面を複製すると、以下のようなメリットがあります。 デスクトップ作業の効率が上がり、複数のアプリを同時に操作できる 別のディスプレイや