我想开上面它的父窗口的中心的对话窗口,所以我用下面的公式:JavaFX-2:如果没有手动设置窗口大小,如何获取窗口大小?
Window window = ((Node) actionEvent.getSource()).getScene().getWindow();
Scene scene = new Scene(new Group(new DialogWindow()));
Stage dialog = new Stage();
dialog.initOwner(window);
dialog.sizeToScene();
dialog.setX(stage.getX() + stage.getWidth()/2 - dialog.getWidth()/2); //dialog.getWidth() = NaN
dialog.setY(stage.getY() + stage.getHeight()/2 - dialog.getHeight()/2); //dialog.getHeight() = NaN
dialog.setScene(scene);
dialog.show(); //it is better to showAndWait();
我没有设置大小的手动,因为我需要的窗口中自动调整大小的其内容的大小。
在Linux下,它直接在父窗口的中心设置窗口。但在Windows中,它不起作用并导致不同的结果。
如果我没有手动设置它们,我如何获得对话框的宽度和高度?
它的工作原理。但只有'show()'。对于'showAndWait()',如果移动了主窗口,则会出现问题。如果我把它放在一边,对话框仍然会出现在屏幕的中心。无论如何感谢这样的解决方案,我会继续寻求'showAndWait()':) – Dragon
@Dragon的解决方案,请参阅更新。 –
非常感谢。它真的很棒。 – Dragon