Домашняя страница AnchorPane = (AnchorPane) loader.load(); не работает

Ниже приведен код:

 @Override
 public void start(Stage primaryStage) {
     System.out.println("Enter start method");
    this.primaryStage = primaryStage;
    this.primaryStage.setTitle("Bank Account App");
    try {
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(MainApp.class.getResource("view/Overview.fxml"));
        System.out.println("Location is set");
        AnchorPane homePage = (AnchorPane) loader.load();

        OverviewController controller = loader.getController();
        controller.setMainApp(this);

        // Show the scene containing the root layout.
        Scene scene = new Scene(homePage);
        primaryStage.setScene(scene);
        primaryStage.show();
        System.out.println("Showed successfully");
        this.primaryStage.setWidth(800);
    } catch (IOException e) {
        System.out.println("Not Working");;
    }


 }

Вот сообщение об ошибке:

Caused by: java.lang.IllegalStateException: Location is not set.
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2434)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409``)
at Question2.Controller.MainApp.start(MainApp.java:40)

Почему не работает линия AnchorPane homePage = (AnchorPane) loader.load();? Я уверен, что мой файл fxml имеет панель привязки в качестве родителя.


person Bing Sen Lim    schedule 18.07.2016    source источник
comment
Есть много других вопросов, связанных с этим сообщением об ошибке. Вы смотрели на любой из них?   -  person James_D    schedule 18.07.2016


Ответы (2)


Пожалуйста, добавьте следующую открывающую строку в самый верхний контейнер файла FXML экрана:

fx:controller="com.fxtest.MyController"

где com.fxtest.MyController — ваш класс, содержащий метод, например:

void buttonOnAction(ActionEvent event) throws IOException{

который отвечает за отлов т.е. щелчков мышью по кнопкам...


Вы также можете добавить метод контроллера в:

SceneBuilder -> Свойства (запрошенного объекта) -> OnAction

person keru    schedule 23.08.2017

Проверьте, что на самом деле возвращает MainApp.class.getResource("view/Overview.fxml").

person mipa    schedule 18.07.2016
comment
Это указывает OP в правильном направлении; это не очень хороший ответ, поскольку он не объясняет проблему, а просто дает советы по отладке. Еще 2 или 3 предложения, объясняющие проблему, сделали бы этот ответ нормальным. - person fabian; 18.07.2016