невозможно загрузить сцену javafx - PullRequest
0 голосов
/ 22 сентября 2018

У меня проблема с загрузкой файла.Я пытаюсь загрузить сцену "areaView.fxml" со следующим кодом:

public class View extends Application {

public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) throws IOException {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("/resources/areaView.fxml"));
        Parent root = loader.load();
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.show();
}}

Но при запуске я получаю InvocationTargetException ..

ДляИнформация о Windows, и абсолютный путь к файлу: C: \ Users \ pierr \ Desktop \ Yves \ resources \ areaView.fxml

Возможно, это глупая ошибка, но яЯ застрял на нем довольно долго ... Я почти уверен, что это связано с "/", но все мои попытки исправить это потерпели неудачу ...

Заранее спасибо

РЕДАКТИРОВАТЬ:

Здесь полный стек

enter image description here

РЕДАКТИРОВАТЬ n ° 2

Очень странновещь, когда я проверяю это:

 System.out.println(getClass().getResource("").toString());

Я получаю это: файл: / C: / Users / pierr / Desktop / Yves / out / production / Yves / view /

Когда я мог бы представить, что получу это: file: / C: / Users / pierr / Desktop / Yves /

Если я переместу свой файл в file: / C: / Пользователи / Pierr / Рабочий стол / Yves / Out / Production / Yves / View / это работает, но в факт это решение не является удовлетворительным

1 Ответ

0 голосов
/ 22 сентября 2018

По умолчанию ваша папка ресурсов должна быть под projectName/src/main/resources.

Так что в вашем случае: C:\Users\pierr\Desktop\Yves\src\main\resources\areaView.fxml.

В таком случае .getResource("areaView.fxml") должно быть достаточно.

Имейте в виду, что если вы переместите свой fxml в другую папку или вызовете getResource из другой папки, отличной от src/main/java, вам придется изменить относительный путь, который вы передаете методу.

...