JavaFX,新窗口将无法运行

时间:2019-06-14 11:57:20

标签: java javafx

我找到了这段代码,但是它不会运行新的空白窗口,并且会不断出现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);
    }
}

1 个答案:

答案 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").toExtern‌​alForm());