TITLE:JFrameをスクリーン中央に表示

JFrameをスクリーン中央に表示

編集者:Terai Atsuhiro
作成日:2004-01-07
更新日:2021-09-24 (金) 14:46:58

概要

フレームやダイアログなどをスクリーンの中央に表示します。

サンプルコード

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);
  • &jnlp;
  • &jar;
  • &zip;

解説

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

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

どちらも、フレームをpack()したあとで実行するようにしてください。

参考リンク

コメント

  • 1.4以降なら、setLocationRelativeTo(null)でも中央になりますよ。 -- Wata
  • こんな方法があったんですね。参考になりました。 -- terai
  • というわけで、src.zipなどを更新してみました。 -- terai