0
点赞
收藏
分享

微信扫一扫

javafx+maven项目——毕设中遇到的问题

落花时节又逢君to 2022-03-12 阅读 165

1. FXMLLoader.load() 问题

具体代码如下:

@Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("login.fxml"));
        stage.setScene(new Scene(root, 580, 400));
        stage.show();
    }

具体项目结构如图所示:

可以看见就是很简单的读取fxml文件,然后展示即可。

结果,我遇到了空指针异常,提示无法找到对于文件,于是乎我根据网上教程各种修改,大概有以下几种方式:

//方法一
Parent root = FXMLLoader.load(getClass().getResource("/login.fxml"));

//方法二
        Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("login.fxml"));

//方法三
Parent root = FXMLLoader.load(getClass().getResource("/fxml/login.fxml"));

//....等等基本上网上的路径我都试过了

        最后看了这篇文章解决了:Maven + Java FX出现问题:Caused by: java.lang.NullPointerException: Location is required.

        修改后应该为:

Parent root = FXMLLoader.load(getClass().getResource("/static/fxml/login.fxml"));

        其实是因为编译后,项目实际运行时会从target目录中读取文件,所以路径应该对应target中的具体路径。

        在修改过程中,我觉得自己就在正确的大门旁边,最后改正确也挺开心的,不过这个错误确实很小,但真的很难改(因为是初学菜鸟罢了)。

举报

相关推荐

0 条评论