我需要一些帮助才能将图像导入我的JavaFx应用程序:
我的图片有路径:/sprinter/ExternalSprinterFolder/Maps/map_asteroid/map_asteroid.jpg
我的GUI代码有以下路径: /sprinter/src/de/sprinter/gameclient/gui/SelectSectorGui.java
我已经尝试了很多,但我无法加载图片...... 我试过例如:
File file = new File(imagePath);
Image image = new Image(file.toURI().toString());
ImageView iv = new ImageView(image);
和
String image = SelectSectorGui.class.getResource(imagePath).toExternalForm();
pane.setStyle(("-fx-background-image: url(\" " + image +
" \");-fx-background-repeat: no-repeat;"));
答案 0 :(得分:0)
如果文件位于文件系统上,并且未作为jar文件的一部分捆绑,则第一个代码块是正确的方法。在这种情况下,imagePath
应该是文件的绝对文件系统路径。您可以使用
System.out.println(file.exists());
如果图像文件将捆绑在您的jar文件中,则第二个代码块是正确的方法。在这种情况下,imagePath
应该与班级相关;以/
开头的路径被解释为相对于类路径。如果在这种情况下路径不正确,getResource(...)
将返回null
。