当前位置: 首页 > 知识库问答 >
问题:

JavaFX NullPointerException位置是必需的NetBeans[重复]

卫华奥
2023-03-14

但是当我创建新的JavaFX FXML应用程序时,这个应用程序和上面的几乎一样,但是阶段是由FXML和css定义的,而不是字节代码。这一个可以作为windows应用程序完美地工作,但不能作为浏览器应用程序工作

java.lang.NullPointerException: Location is required.
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.load(Unknown Source)
    at javafxapplication3.JavaFXApplication3.start(JavaFXApplication3.java:22)
    at com.sun.javafx.applet.FXApplet2$2.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$170(Unknown Source)
    at com.sun.javafx.application.PlatformImpl$$Lambda$46/15592694.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(Unknown Source)
    at com.sun.javafx.application.PlatformImpl$$Lambda$45/19532686.run(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$145(Unknown Source)
    at com.sun.glass.ui.win.WinApplication$$Lambda$35/9825943.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.NullPointerException: Location is required.
    at com.sun.javafx.applet.FXApplet2$2.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$170(Unknown Source)
    at com.sun.javafx.application.PlatformImpl$$Lambda$46/15592694.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(Unknown Source)
    at com.sun.javafx.application.PlatformImpl$$Lambda$45/19532686.run(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$145(Unknown Source)
    at com.sun.glass.ui.win.WinApplication$$Lambda$35/9825943.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Location is required.
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
    at javafx.fxml.FXMLLoader.load(Unknown Source)
    at javafxapplication3.JavaFXApplication3.start(JavaFXApplication3.java:22)
    ... 11 more

下面是工作应用程序的代码:

public class JavaFXApplication4 extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

并且此应用程序在浏览器中无法工作并引发异常

public class JavaFXApplication3 extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

}

有人能帮帮我吗?

共有1个答案

霍修筠
2023-03-14

问题就出在这一行:

Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

很明显,实际上是用null参数调用load方法的。发生这种情况是因为getResource(“/sample/sample.fxml”)无法将该资源存档。

运行时类路径上缺少资源(或具有错误的路径)。

 类似资料:
  • 所以我尝试构建一个JavaFX应用程序,但得到一个NullPointerException“location is required”。我已经找到了一些关于这个的问题,但没有一个答案对我有效。 我已经试过了: 并将fxmldocument.fxml移动到默认包,但这些操作对我都不起作用。这是Netbeans创建的未经改动的JavaFX FXML应用程序,我真的不明白为什么这不能开箱即用... 项目

  • 我得到了 fxml_example.fxml FXMLExAmple.java

  • 我对Python非常陌生,现在我有了第一个真正的问题:我想写一个电子邮件程序,但是我不能使用类来发送邮件。我看到了很多这些错误的答案,但没有一个真正适合我。以下是代码: PS:很抱歉我的英语不好,我是一名德国学生,这就是为什么所有变量和类的名称都是用德语写的,希望这不是问题:)

  • 这是我的主班 这是我的控制器类 这是我的fxml文件 我怎么才能修好它?我从这里尝试一切JavaFX“位置是必需的”即使它在同一个包中 更新:

  • 我是Python的新手,我正在尝试学习如何使用类。有人知道这怎么不起作用吗?任何关于关键字“self”的额外提示都将不胜感激。 代码: 错误:

  • 问题内容: 我正在尝试运行JavaFX程序,但遇到了一些困难。我不断收到错误消息“ :必须提供位置”。fxml文件与Application类位于同一软件包中。这是我非常简单的代码: 这是我的main.fxml文件的副本: 控制器类确实存在,并且位于fxml文件中指定的包中。我所有的名字都是正确的,也是我认为应该的位置。我想念什么?我确实尝试重命名我的fxml文件,以防这是一个名称问题。请帮忙。仅供