親ウィンドウの中央の上にダイアログ ウィンドウを開きたいので、次の式を使用します。
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 では機能せず、異なる結果につながります。
手動で設定しない場合、ダイアログの幅と高さを取得するにはどうすればよいですか?