#java #javafx
Есть 2 формы, у форм разные классы-контроллеры, 1 форма по нажатию на кнопку загружает другую. Как отправить 2 форме информацию из 1 формы. Для смены форм использую - есть статический Stage, на котором меняю Scene : public static Stage primaryStage; @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("/sample/sample.fxml")); primaryStage.setScene(new Scene(root)); runStage(primaryStage); } public static void runStage(Stage stage) throws IOException { primaryStage = stage; primaryStage.show(); } public static void main(String[] args) { launch(args); } Смена формы по нажатию на кнопку: public void EditBook() throws IOException { Parent root = FXMLLoader.load(getClass().getResource("/sample/EditBook.fxml")); Main.primaryStage.setScene(new Scene(root)); Main.primaryStage.show(); } Хотелось бы узнать как правильно менять формы и увидеть на примере взаимодействие между формами
Ответы
Ответ 1
Взаимодействие между формами можно сделать через вызов методов у контроллера. Чтобы получить контроллера, надо писать так FXMLLoader loader = new FXMLLoader("/sample/EditBook.fxml"); Parent root = loader.load(); Main.primaryStage.setScene(new Scene(root)); ControllerClass controllerEditBook = loader.getController(); //получаем контроллер для второй формы controllerEditBook.someMethod(someParameters); // передаем необходимые параметры Main.primaryStage.show();
Комментариев нет:
Отправить комментарий