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