Страницы

Поиск по вопросам

понедельник, 10 февраля 2020 г.

Обмен данными между формами Java FX

#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();

Комментариев нет:

Отправить комментарий