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

JavaFX:Window.sizeToScene()在原始位置居中,java,javafx,javafx-8,Java,Javafx,Javafx 8,我知道Window.sizeToScene()会将窗口调整为其场景所需的大小,但窗口的位置不会相应调整(即,固定点位于窗口的左上角)。有没有办法使窗口自行调整大小,并使窗口中心保持在同一位置(即使固定点位于窗口中心)?执行以下操作: public void resize(Window win) { double x = win.getX(); double y = win.getY(); double width = win.getWidth(); double

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

执行以下操作:

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));
}
上面的代码在将窗口调整到场景之前缓存位置,然后将窗口移动适当的量,以使窗口在同一区域居中。此代码不考虑窗口移动/调整大小后的位置。您可能需要添加检查以确保窗口不会最终离开屏幕。

执行以下操作:

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));
}
上面的代码在将窗口调整到场景之前缓存位置,然后将窗口移动适当的量,以使窗口在同一区域居中。此代码不考虑窗口移动/调整大小后的位置。您可能需要添加检查以确保窗口不会最终离开屏幕