Центрируйте Windows Swing

Я разрабатываю Java приложение Swing. Как я могу сделать его так, чтобы, когда сама программа и какие-либо другие окна открываются, они подошли в центре экрана?

17
задан Andrew Thompson 16 April 2015 в 16:54
поделиться

3 ответа

frame.setLocationRelativeTo( null );
46
ответ дан 30 November 2019 в 10:27
поделиться

Вам придется сделать это вручную, используя setLocation (x, y) .

Что-то вроде:

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

должно это делать (не проверено).

1
ответ дан 30 November 2019 в 10:27
поделиться

Выполнение этого вручную в многоэкранной среде дает что-то вроде этого (статично, потому что вы, вероятно, захотите, чтобы это было в служебном классе):

  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) , но кнопка должна быть уже добавлена ​​в диалог и видна.

1
ответ дан 30 November 2019 в 10:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: