JavaFX:Window.sizeToScene()居中于原始位置

时间:2018-04-12 01:52:01

标签: java javafx javafx-8

我知道Window.sizeToScene()会将窗口调整到其场景所需的大小,但窗口的位置不会相应调整(即固定点是窗口的左上角)。有没有办法让窗口自己调整大小,并将窗口的中心保持在同一个位置(即将静止点放在窗口的中心)?

1 个答案:

答案 0 :(得分:2)

做类似的事情:

public void resize(Window win) {
    double x = win.getX();
    double y = win.getY();
    double width = win.getWidth();
    double height = win.getHeight();

    win.sizeToScene();

    win.setX(x + ((width - win.getWidth()) / 2));
    win.setY(y + ((height - win.getHeight()) / 2));
}

上面的代码在窗口调整大小到场景之前缓存位置,然后它将窗口移动适当的量以使窗口居中于同一区域。此代码不会考虑窗口移动/调整大小后的位置。您可能希望添加检查以确保窗口不会离开屏幕。