概要
JFrame
やJDialog
などのWindow
がスクリーンの中央に配置されるように設定します。
Screenshot
Advertisement
サンプルコード
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);
View in GitHub: Java, Kotlin解説
Window#setLocationRelativeTo(Component)
メソッドで引数で指定した基準となるコンポーネントをnull
にした場合、JFrame
は画面中央に配置されます。
JFrame
の左上隅座標を計算してJFrame#setLocation(...)
メソッドを使用し、JFrame
を画面中央に配置する方法もある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);
- どちらの場合も
JFrame
をpack()
、またはsetSize(int, int)
でそのサイズを設定した後で実行する必要がある