NullPointerException с getResource () при добавлении CSS в приложение JavaFX - PullRequest
0 голосов
/ 10 января 2019

Немного запутался с NullPointerException, которое я получаю. Я пытаюсь добавить файл .css в свой основной класс. Вот код.

        //Load FXML file
        Parent root = FXMLLoader.load(getClass().getResource("/application/HumansightFirstDraft.fxml"));

        // Create scene
        Scene scene = new Scene(root, 400, 600);

        //Load CSS
        scene.getStylesheets().add(getClass().getClassLoader().getResource("/application/application.css").toExternalForm());

        // Display application
        primaryStage.setScene(scene);
        primaryStage.show();`

application.css находится в том же месте, что и Main.java.

Вот мой вывод на консоль.

Jan 10, 2019 8:30:20 AM javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 10.0.1 by JavaFX runtime of version 8.0.191
java.lang.NullPointerException
    at application.Main.start(Main.java:22)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

Вот мой css. У меня есть только одно изменение, чтобы облегчить тестирование.

#startSurvey {

-fx-border-radius: 30;

}

Вот мой каталог, как видно в Eclipse.

Screenshot of folder

1 Ответ

0 голосов
/ 11 января 2019

Вы не должны сказать /application/application.css

Просто напишите так application.css

Это связано с тем, что оба основных класса и файл css находятся в одном родительском каталоге

То же, что и все файлы FXML

Обновление Также возможно, что нулевой указатель встречается в контроллере fxml.

Обновление 2 Благодаря

@ Kleopatra

не использовать getClass().getClassLoader().getResource() просто использовать getClass().getResource()

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