我有一个结构如下的项目:
我试图使用以下代码从Main类加载sample.fxml:
Parent root = FXMLLoader.load(Main.class.getResource("../../submodule/src/java/sample.fxml"));
但是它不起作用。 sample.fxml文件代码为:
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<GridPane fx:controller="sample.Controller"
xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
</GridPane>
问题是FXML加载器找不到此位置。如何解决?
答案 0 :(得分:0)
我建议遵循基本的Maven包结构,如下所示:
src
|--main
|--java
|--resource (put your FXML file into this folder)
然后以下应该起作用:
Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("sample.fxml"));
您也可以将FXML文件放入子文件夹:
... = FXMLLoader.load(getClass().getClassLoader().getResource("layouts/sample.fxml"));