我正在创建一个Javafx GUI应用程序,而我的项目是一个经过Maven配置的项目。我希望能够在控制器中像这样引用我的fxml文件:FXMLLoader.load(getClass().getResource("main.fxml");我的main.fxml文件位于src / main / resources文件夹中,而我的控制器位于src / main / java文件夹中。我该怎么做?我的src / main / resources文件夹位于构建路径中,我能够从src / main / java文件夹中的类调用src / main / resources文件夹中的.properties文件。编辑我试图将fxml文件放在主资源文件夹的相应目录中:但我仍然有一个错误。
3 回答

尚方宝剑之说
TA贡献1788条经验 获得超4个赞
您正在FXMLLoader fxmlLoader = new FXMLLoader( getClass().getResource("main.fxml") );
用来加载main.fxml。这需要main.fxml和java类将其加载到同一目录/路径中。如果要从不同于加载Java类的路径/位置加载fxml文件,则需要使用相对路径。如上文@jewelsea所述,您可以在main.fxml之前使用/字符来使用相对路径。因此,适合您的情况的代码是
FXMLLoader fxmlLoader = new FXMLLoader( getClass().getResource("/main.fxml") );

当年话下
TA贡献1890条经验 获得超9个赞
在操作系统的文件资源管理器中打开资源文件夹。在这里,您将看到已在“ dominion”文件夹中创建了一个“ dominion.application”文件夹,而不是一个“ application”文件夹。因此,“ MainController”类与fxml文件放在不同的包中。
添加回答
举报
0/150
提交
取消