与我得到的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中看到的目录。
答案 0 :(得分:1)
您别说/application/application.css
只需这样写application.css
这是因为这两个主要类和css文件都在同一父目录中
与所有fxml文件相同
更新 空指针也可能出现在fxml的控制器中。
更新2 多亏
@kleopatra
不要使用getClass().getClassLoader().getResource()
,只需使用getClass().getResource()