Я новичок в JavaFX, и у меня возникла проблема с установкой позиции моего нового окна, связанной с положением родительского окна. Я хочу открыть новое окно в центре родительского окна.JavaFX - центральная дочерняя ступень до родительского этапа
Я попробовал эти два пути:
1) Init владелец - я думал, что владелец INIT откроет мое окно в центре родителя, но это не
FXMLLoader fxmlLoader = new FXMLLoader(AddUserController.class.getResource("/view/addUserStage.fxml"));
Parent root = fxmlLoader.load();
Stage stage = new Stage();
stage.initOwner(parentStage);
stage.showAndWait();
2) Переставьте когда окно отображается - он работает, но после того, как окно показано, я вижу его первую позицию, а затем вижу, что он перемещен в новую расчетную позицию. Я не могу этого принять.
FXMLLoader fxmlLoader = new FXMLLoader(AddUserController.class.getResource("/view/addUserStage.fxml"));
Parent root = fxmlLoader.load();
Stage stage = new Stage();
stage.initOwner(parentStage);
stage.setOnShown(event -> controller.onWindowShown());
stage.showAndWait();
В onWindowShown функции я устанавливаю новый X и Y положения моего окна, потому что только после того, как показано ширина и высота моего окна, как известно, и я могу вычислить Исли новую позицию.
Как установить положение дочернего окна в центре родительского окна перед функцией showAndWait?
Я не знаю, почему, но я получаю нули в корневых границах, даже если я leayout функцию до получения оценки. – scoozi17