我想在其父窗口的中心上方打开一个对话框窗口,所以我使用以下公式:
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 中它不起作用并导致不同的结果。
如果我不手动设置对话框的宽度和高度,如何获取它们?