• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JFrameをスクリーン中央に表示
#navi(../)
#tags(JFrame)
RIGHT:Posted by &author(aterai); at 2003-12-29
*JFrameをスクリーン中央に表示 [#b05e1eeb]
---
title: JFrameをスクリーン中央に表示
tags: [JFrame]
author: aterai
pubdate: 2003-12-29
description: フレームやダイアログなどをスクリーンの中央に表示します。
---
* 概要 [#b05e1eeb]
フレームやダイアログなどをスクリーンの中央に表示します。

-&jnlp;
-&jar;
-&zip;
#download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTIvEn-69I/AAAAAAAAATQ/Fw4dLY4C0EE/s800/CenterFrame.png)

//#screenshot
#ref(http://lh3.ggpht.com/_9Z4BYR88imo/TQTIvEn-69I/AAAAAAAAATQ/Fw4dLY4C0EE/s800/CenterFrame.png)

**サンプルコード [#o0de8a54]
* サンプルコード [#o0de8a54]
#code(link){{
JFrame frame = new JFrame("フレームをスクリーン中央に表示");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(new MainPanel());
frame.pack();
frame.setLocationRelativeTo(null);
//以下は自前で位置を計算する場合
//Rectangle screen = frame.getGraphicsConfiguration().getBounds();
//frame.setLocation(screen.x + screen.width/2  - frame.getSize().width/2,
//                  screen.y + screen.height/2 - frame.getSize().height/2);
frame.setVisible(true);
}}

**解説 [#v308e626]
``JFrame#setLocationRelativeTo``メソッドで、基準となる親ウィンドウを``null``にすると、そのフレームは画面中央に表示されます。
* 解説 [#v308e626]
`JFrame#setLocationRelativeTo`メソッドで、基準となる親ウィンドウを`null`にすると、そのフレームは画面中央に表示されます。

``JFrame#setLocation``メソッドで任意の位置を指定する場合は、フレームの左上隅座標を計算します。
`JFrame#setLocation`メソッドで任意の位置を指定する場合は、フレームの左上隅座標を計算します。

どちらも、フレームを``pack()``、もしくは``setSize(int,int)``した後で実行するようにしてください。
どちらも、フレームを`pack()`、もしくは`setSize(int,int)`した後で実行するようにしてください。

**参考リンク [#a98bdd9a]
-[http://forums.sun.com/thread.jspa?threadID=508444 Swing (Archive) - How can I open a JFrame at the center of my screen ?]
* コメント [#b68bf302]
#comment
- `1.4`以降なら、`setLocationRelativeTo(null)`でも中央になりますよ。 -- &user(Wata); &new{2004-06-07 (月) 17:47:08};
-- こんな方法があったんですね。参考になりました。 -- &user(aterai); &new{2004-06-07 (月) 19:26:17};
-- というわけで、`src.zip`などを更新してみました。ありがとうございました。 -- &user(aterai); &new{2004-06-07 (月) 19:44:21};

**コメント [#b68bf302]
- ``1.4``以降なら、``setLocationRelativeTo(null)``でも中央になりますよ。 -- [[Wata]] &new{2004-06-07 (月) 17:47:08};
-- こんな方法があったんですね。参考になりました。 -- [[aterai]] &new{2004-06-07 (月) 19:26:17};
-- というわけで、``src.zip``などを更新してみました。ありがとうございました。 -- [[aterai]] &new{2004-06-07 (月) 19:44:21};

#comment