Не могу пробросить данные в FXML форму при ее загрузке JavaFX

Я осваиваю JavaFX и пишу небольшое приложения для рецептов. Столкнулся с проблемой вывода данных в форму при ее инициализации после срабатывания ивента.

У меня есть 2 контроллера:

  1. OptionsController
  2. RecipeController

В OptionsController отдается форма для импорта ссылки и последующего парсинга рецепта, которая уже, в свою очередь, обрабатывается в контроллере RecipeController. Я ожидаю, что после импорта приложение спарсит данные и отдаст в новое модальное окно с информацией о рецепте в ивенете того же RecipeController. Однако это не происходит, потому что инициализация проходит, как я понимаю, раньше, чем мне нужно. Как мне это исправить и заполнить форму данными до ее инициализации? Прилагаю код:

OptionsController

public class OptionsController {

    private Stage stage;
    private Scene scene;
    private Parent root;
    public Button favourites;
    public Button addRecipe;
    public Button myRecipes;
    public Button completeImport;
    private PovarParser parser = new PovarRecipeParser();


    public void onImportButtonClicked(MouseEvent mouseEvent) throws IOException {
        root = new FXMLLoader(
                HelloApplication.class
                        .getResource("import-recipe.fxml")
        ).load();
        Stage stage  = new Stage();
        stage.initModality(Modality.APPLICATION_MODAL);
        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.setTitle("Импорт рецепта");
        stage.showAndWait();
    }

    public void onFavouritesButtonClicked(MouseEvent mouseEvent) {
    }

    public void onAddRecipeButtonClicked(MouseEvent mouseEvent) {
    }

    public void onMyRecipesButtonClicked(MouseEvent mouseEvent) {
    }


    @FXML
    void initialize() {
    }
}

RecipeController

public class RecipeController {

    public TextArea targetUrl;
    private Stage stage;
    private Scene scene;
    private Parent root;

    @FXML
    public Label title;
    PovarParser parser = new PovarRecipeParser();

    RecipeModel recipeModel = new RecipeModel();



    public void onCompleteImportClicked(MouseEvent event) throws IOException {
        title = new Label(recipeModel.getTitle());
        String recipeLink = targetUrl.getText();
        if (PovarValidator.isValidUrl(recipeLink)){
            recipeModel = parser.parse(recipeLink);
        }
        root = new FXMLLoader(
                HelloApplication.class
                        .getResource("recipe.fxml")
        ).load();

        //author.setText(recipeModel.getAuthor());
        stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
        scene = new Scene(root);
        stage.setScene(scene);
    }

    @FXML
    void initialize() {
    }

}

import-recipe.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>

<Pane
        maxHeight="-Infinity"
        maxWidth="-Infinity"
        minHeight="-Infinity"
        minWidth="-Infinity"
        prefHeight="200.0"
        prefWidth="500.0"
        style="-fx-border-radius: 10; -fx-background-color: #fbf67f;"
        xmlns="http://javafx.com/javafx/17.0.2-ea"
        xmlns:fx="http://javafx.com/fxml/1"
        fx:controller="ru.martynova.recipemanager.controller.RecipeController"
>
   <children>
      <TextArea fx:id="targetUrl" layoutX="96.0" layoutY="80.0" prefHeight="15.0" prefWidth="295.0" style="-fx-border-radius: 15;" />
      <Button fx:id="completeImport" layoutX="190.0" layoutY="134.0" mnemonicParsing="false" onMouseClicked="#onCompleteImportClicked" prefHeight="27.0" prefWidth="108.0" style="-fx-background-color: #dd8600;" text="Импортировать" />
      <Label layoutX="56.0" layoutY="28.0" text="Импорт осуществляется по ссылке на страницу рецепта с сайта ">
         <font>
            <Font name="SansSerif Bold" size="12.0" />
         </font>
      </Label>
      <Hyperlink  layoutX="181.0" layoutY="43.0" text="https://povar.ru/">
         <font>
            <Font name="SansSerif Italic" size="15.0" />
         </font>
      </Hyperlink>
   </children>
</Pane>

recipe.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.shape.Line?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>

<ScrollPane
        maxHeight="-Infinity"
        maxWidth="-Infinity"
        minHeight="-Infinity"
        minWidth="-Infinity"
        prefHeight="493.0"
        prefWidth="601.0"
        xmlns="http://javafx.com/javafx/17"
        xmlns:fx="http://javafx.com/fxml/1"
        fx:controller="ru.martynova.recipemanager.controller.OptionsController"
>
    <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="579.0" prefWidth="598.0">
        <Label fx:id="title" layoutX="144.0" layoutY="14.0" prefHeight="63.0" prefWidth="310.0" text="Label" textAlignment="CENTER">
            <font>
                <Font name="SansSerif Bold" size="14.0" />
            </font>
        </Label>
        <ImageView fitHeight="249.0" fitWidth="372.0" layoutX="113.0" layoutY="77.0" pickOnBounds="true" preserveRatio="true" />
        <Line endX="195.0" layoutX="289.0" layoutY="340.0" startX="-177.00001525878906" />
        <GridPane layoutX="326.0" layoutY="350.0" prefHeight="40.0" prefWidth="257.0">
            <columnConstraints>
                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
            </columnConstraints>
            <rowConstraints>
                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
            </rowConstraints>
            <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Автор:" wrappingWidth="104.4388427734375" />
            <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Время приготовления:" textAlignment="CENTER" GridPane.rowIndex="1" />
            <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Text" GridPane.columnIndex="1" />
            <Text fx:id="timeToCook" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" GridPane.columnIndex="1" GridPane.rowIndex="1" />
        </GridPane>
    </AnchorPane>
</ScrollPane>


Ответы (0 шт):