Javafx в банке не может открыть новую сцену - PullRequest
0 голосов
/ 20 февраля 2020

В моем приложении от основного контроллера я пытаюсь открыть новую сцену

public void runReportParserWindow() throws IOException {

    System.out.println("Open report parser window");
    FXMLLoader fxmlLoader = new FXMLLoader();      
    fxmlLoader.setLocation(getClass().getResource("../views/reportWindow.fxml"));
    ControllerReportParser controller = new ControllerReportParser(getPrimaryStage(), getMainApp());
    controller.registerObserver(this);
    fxmlLoader.setController(controller);
    Scene scene = new Scene(fxmlLoader.load());
    Stage stage = new Stage();
    stage.setTitle("Get data for report");
    stage.setScene(scene); //scene
    stage.initModality(Modality.WINDOW_MODAL);
    stage.initOwner(getPrimaryStage());

    stage.show();
}

Если я запускаю приложение в идее Intellij - все окна открываются нормально. Когда я создаю JAR-файл (артефакты), я не могу открыть ни одно окно, кроме главного. Основная сцена показана, а другие нет. Настройки для артефакта enter image description here

Что я делаю не так?

1 Ответ

1 голос
/ 20 февраля 2020

Большое спасибо James_D Я использовал относительные пути для загрузки f xml -файлов. Теперь я заменяю папку views на контроллеры и меняю код с

fxmlLoader.setLocation(getClass().getResource("../views/reportWindow.fxml"));

на

fxmlLoader.setLocation(getClass().getResource("views/reportWindow.fxml"));

и все работает нормально.

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