Как мы можем уничтожить контроллер F XML, когда загружаем другой? - PullRequest
0 голосов
/ 06 марта 2020

Я создаю программу на JAVAFX с F XML.

У меня есть несколько контроллеров F XML, и когда я меняю контроллер, похоже, что предыдущий продолжает работать.

Поэтому, когда я загружаю его второй раз, одновременно работают 2 контроллера.

Например, у меня есть видео на mediaPlayer, которое я слышу дважды одновременно (или больше, если загружаю контроллер больше, чем дважды).

Вот функция в моем основном классе для изменения контроллера:

    public void showMainOverview(Integer choixscene){
    try {
        if(choixscene == 1){
          // Load main overview.
          FXMLLoader loader = new FXMLLoader();
          loader.setLocation(MainApp.class.getResource("view/MainOverview.fxml"));
          AnchorPane mainOverview = (AnchorPane) loader.load();
          main = new MainOverviewController();
          // Set main overview into the center of root layout.
          rootLayout.setCenter(mainOverview);

          // Give the controller access to the main app.
          main = loader.getController();
          main.setMainApp(this);
        }else if(choixscene == 2){
          // Load main overview.
          FXMLLoader loader = new FXMLLoader();
          loader.setLocation(MainApp.class.getResource("view/MaintenanceOverview.fxml"));
          AnchorPane mainOverview = (AnchorPane) loader.load();
          // Set main overview into the center of root layout.
          rootLayout.setCenter(mainOverview);
          // Give the controller access to the main app.
          MaintenanceOverviewController controller = loader.getController();
          controller.setMainApp(this);
        }
      } catch (IOException e) {
      e.printStackTrace();
      }
   }

В контроллерах я вызываю такую ​​функцию

//button to return to home
public void retouraccueilClicked(){
  mainApp.showMainOverview(1);
}


//Call in main class
public void setMainApp(MainApp mainApp) {
  this.mainApp = mainApp;
}

Я бы Хотелось бы узнать, как я могу уничтожить контроллер при смене или если я могу загрузить предыдущий и не генерировать новый?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...