javafx — Передача параметров второму контроллеру первому после нажатия кнопки на первом контроллере

#java #javafx-8

Вопрос:

У меня есть основная сцена, содержащая Pane . Я загружаю разные сцены в соответствии с выбором в окне выбора. основным контроллером является :

 @FxmlView("/fxml/calender.fxml")
@RequiredArgsConstructor
@Component
public class CalenderController implements Initializable {
    private final DailyController dailyController;
    @FXML
    private ChoiceBox<String> calChoiceBox;

    @FXML
    private Pane mPane;

    @FXML
    private ChoiceBox<String> tillChoiceBox;

    @FXML
    private Pane tillPane;

    @FXML
    private Button saveBtn;

    private Pane repeatPane;
    private TextField noOfTimes;
    private final String[] repeatList = {"التكرار يوميا", "التكرار أسبوعيا", "التكرار شهريا", "التكرار سنويا"};
    

    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {
        calChoiceBox.getItems().addAll(repeatList);
        calChoiceBox.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
            try {
                if (newValue.equals("التكرار يوميا")) {daily();}
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
    }

    public void daily() throws IOException {
        FXMLLoader loader = new FXMLLoader();
        repeatPane = loader.load(getClass().getResource("/fxml/daily.fxml"));
        mPane.getChildren().setAll(repeatPane);
        saveBtn.setOnAction(event -> {
            String s = dailyController.getNotxtfiled();
            System.out.println(s);
        });
    }
}
 

и второй контроллер-это DailyController

 @Component
@RequiredArgsConstructor
public class DailyController implements Initializable {
    @FXML
    private  TextField notxtfiled ;
    private String text;

    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {
        getNotxtfiled();
    }

    public String getNotxtfiled() {
        try{
        text = notxtfiled.getText();
        }
        catch (NullPointerException e){
            System.out.println(e.getMessage());
        }
        return text;
    }

}
 

поэтому мне нужно получить файл daily.fxml notxtfiled после нажатия кнопки «Сохранить» в другом месте
После запуска приложения, ввода некоторого текста и нажатия кнопки я получил нулевое исключение. Как это исправить?