将CSS添加到JavaFX应用程序时,带有getResource()的NullPointerException

时间:2019-01-10 14:13:00

标签: java css javafx nullpointerexception

与我得到的NullPointerException有点混淆。我正在尝试向我的Main类添加.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 :(得分:1)

您别说/application/application.css

只需这样写application.css

这是因为这两个主要类和css文件都在同一父目录中

与所有fxml文件相同

更新 空指针也可能出现在fxml的控制器中。

更新2 多亏

  

@kleopatra

不要使用getClass().getClassLoader().getResource(),只需使用getClass().getResource()