我找到了这段代码,但是它不会运行新的空白窗口,并且会不断出现NullPointerException错误。 ps。我是编程新手。任何帮助将不胜感激。
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
BorderPane root = new BorderPane();
try {
Scene scene = new Scene(root,640,480);
scene.getStylesheets().add(getClass().getResource("/application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
root.setCenter(new RootLayout());
}
public static void main(String[] args) {
launch(args);
}
}
答案 0 :(得分:0)
使用JavaFX时,我遇到了相同的常见问题,但是我可以解释一下, 它会抛出空指针异常,因为它无法从指定位置找到您的CSS文件。
我发现您在下一行收到nullpointer异常, scene.getStylesheets()。add(getClass()。getResource(“ / application.css”)。toExternalForm());
还有另一种将CSS文件添加到场景的方法
1) scene.getStylesheets().add("application.css");
2) scene.getStylesheets().add(this.getClass().getResource("/application.css").toString());
3) Package should be inside src directory and css also should be in src directory.
scene.getStylesheets().add(<packageName>.<ClassName>.class.getResource("/application.css").toExternalForm());