如何引用资源文件夹中的javafx fxml文件?

我正在创建一个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文件放在主资源文件夹的相应目录中:

http://img3.mukewang.com/5d8c1b080001e0e013910617.jpg

但我仍然有一个错误。


白衣非少年
浏览 2275回答 3
3回答

尚方宝剑之说

您正在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") );

当年话下

在操作系统的文件资源管理器中打开资源文件夹。在这里,您将看到已在“ dominion”文件夹中创建了一个“ dominion.application”文件夹,而不是一个“ application”文件夹。因此,“ MainController”类与fxml文件放在不同的包中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java