17

私はJavaSwingアプリケーションを開発しています。プログラム自体と他のウィンドウが開いたときに画面の中央に表示されるようにするにはどうすればよいですか?

4

5 に答える 5

46
frame.setLocationRelativeTo( null );
于 2010-06-21T03:18:25.660 に答える
4

frame.setLocationRelativeTo(null); cetnerでフレームを開きます

よろしく、Rehan Farooq

于 2013-03-04T12:14:42.547 に答える
1

マルチスクリーン環境で手動で実行すると、次のようになります(静的、'ユーティリティクラスで必要になる可能性があるため):

  public static Rectangle getScreenBounds(Component top){
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice[] gd = ge.getScreenDevices();

    if (top != null){
        Rectangle bounds = top.getBounds();
        int centerX = (int) bounds.getCenterX();
        int centerY = (int) bounds.getCenterY();

        for (GraphicsDevice device : gd){
            GraphicsConfiguration gc = device.getDefaultConfiguration();
            Rectangle r = gc.getBounds();
            if (r.contains(centerX, centerY)){
                return r;
            }
        }
    }
    return gd[0].getDefaultConfiguration().getBounds();
}

public void centerWindowOnScreen(Window windowToCenter){
    Rectangle bounds = getScreenBounds(windowToCenter);
    Point newPt = new Point(bounds.x + bounds.width / 2, bounds.y + bounds.height / 2);
    Dimension componentSize = windowToCenter.getSize();
    newPt.x -= componentSize.width / 2;
    newPt.y -= componentSize.height / 2;
    windowToCenter.setLocation(newPt);

}

デフォルトのボタンはですJDialog.getRootPane().setDefaultButton(btn)が、ボタンはすでにダイアログに追加され、表示されている必要があります。

于 2010-06-21T14:04:44.500 に答える
1

を使用して手動で行う必要がありますsetLocation(x,y)

何かのようなもの:

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((dim.width-frameWidth)/2, (dim.height-frameHeight)/2);

それを行う必要があります(テストされていません)。

于 2010-06-21T03:44:42.693 に答える