我第一次尝试将JavaFx与Maven结合使用。通过以下主题:链接IntelliJ can't recognize JavaFX 11 with OpenJDK 11,我配置了项目。但是无论如何我都无法加载fxml文件,因为“ getClass()。getResource(path)”返回null。
我更改了路径,以'/'开头,并且没有,更改了软件包,创建了软件包,删除了软件包,更改了模块信息中的引用,但这是行不通的。
module LogAggregator {
requires javafx.fxml;
requires javafx.controls;
opens fxml to javafx.fxml;
exports com.github.PavelKisliuk;
}
// --------------------------------------------- -------
public class Main extends Application {
public void start(Stage primaryStage) throws Exception {
String path = "fxml/Input.fxml";
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setLocation(getClass().getResource(path));
Parent fxmlMainWindow = fxmlLoader.load();
//start-up window
//-----------------------------------------------
Scene s = new Scene(fxmlMainWindow);
primaryStage.setScene(s);
primaryStage.show();
}
public static void main(String... args) {
launch(args);
}
}
也许有人知道这个问题,可以为我提供帮助。没有行家,我不会有任何问题。
决定
这样的路径:
String path = "/fxml/Input.fxml";
在模块信息中加上两个字符串:
opens com.github.PavelKisliuk.controller to javafx.fxml;
exports com.github.PavelKisliuk.controller to javafx.fxml;
答案 0 :(得分:0)
您的Main类似乎在软件包com.gihub.PavelKisliuk
中,但是资源在fxml
下。在这种情况下,您使用的相对路径会解析为不存在的com.gihub.PavelKisliuk/fxml/Input.fxml
。
解决方案:
希望这对您有帮助...