JavaFX: изменить сцену с помощью контроллеров - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть меню fxml и контроллер, который содержит несколько возможных вариантов. В зависимости от выбранной кнопки в окне будет показан новый список (например, кнопка клиента показывает список клиентов в новой сцене). Я просто не могу понять, как создать новую сцену с помощью контроллеров и fxmlLoaders.

Я попытался создать новый экземпляр CustomerController в методе personButtonHandle () меню, но это выдает предупреждение «игнорируется новый экземпляр».

Запуск приложения работает, но нажатие на CustomerButton вызывает «javafx.fxml.LoadException: корневое значение уже указано».

Главное меню

public Menu(DomainController dc) {
    this.dc = dc;

    FXMLLoader loader = new FXMLLoader(getClass().
            getResource("Main.fxml"));
    loader.setRoot(this);
    loader.setController(this);
    try {
        loader.load();
    } catch (IOException ex) {
        throw new RuntimeException(ex);
    }
}
private void handleBtnCustomers(ActionEvent event) {
        CustomerController cc = new CustomerController(this.dc);

}

CustomerController

public CustomerController(DomainController dc) {
        this.dc = dc;

        FXMLLoader loader = new FXMLLoader(getClass().
                getResource("Customers.fxml"));
        loader.setRoot(this);
        loader.setController(this);
        try {
            loader.load();
        } catch (IOException ex) {
            throw new RuntimeException(ex);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...