我有两个带有各自控制器的FXML文件:
文件1中有一个按钮,使用以下代码打开Home.fxml:
Stage stage = new Stage();
FXMLLoader loader = new FXMLLoader();
Parent root = (AnchorPane) loader.load(getClass().getResource("Home.fxml").openStream());
Scene scene = new Scene(root);
stage.setScene(scene);
stage.initModality(Modality.APPLICATION_MODAL);
stage.setScene(scene);
stage.show();
一切正常,直到我尝试将图像添加到Home.fxml并显示以下错误(我对其进行了总结):
(...)
null/logohome.png
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
(...)
Caused by: javafx.fxml.LoadException:
unknown path:14
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)
at heimdal1.pkg0.FXMLDocumentController.logear(FXMLDocumentController.java:89)
at heimdal1.pkg0.FXMLDocumentController.onEnter(FXMLDocumentController.java:60)
... 59 more
Caused by: java.lang.IllegalArgumentException: Invalid URL: Invalid URL or resource not found
at javafx.scene.image.Image.validateUrl(Image.java:1118)
at javafx.scene.image.Image.<init>(Image.java:693)
at com.sun.javafx.fxml.builder.JavaFXImageBuilder.build(JavaFXImageBuilder.java:47)
我知道好像我没有正确使用图像的URL,但是令我疯狂的是,我在第一个FXML中使用了相同的图像和相同的URL(完全相同,我已经多次比较了它们)文件FXMLDocumment.fxml。我是使用FXML文件的新手,并且尝试了几种修复方式,但我不知道该怎么办。感谢您的帮助,并感谢您抽出宝贵的时间阅读该文章。