#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();
Комментариев нет:
Отправить комментарий