JavaFX 从外部文件夹加载图像
JavaFX load image from external folder
我需要一些帮助来将图像导入我的 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;"));
如果文件将在文件系统上,而不是作为 jar 文件的一部分捆绑,则第一个代码块是执行此操作的正确方法。在那种情况下 imagePath
应该是文件的绝对文件系统路径。您可以检查文件是否存在
System.out.println(file.exists());
如果图像文件将捆绑在您的 jar 文件中,则第二个代码块是执行此操作的正确方法。在这种情况下,imagePath
应该是相对于 class;以 /
开头的路径被解释为相对于 class 路径。如果在这种情况下路径不正确,getResource(...)
将 return null
.
我需要一些帮助来将图像导入我的 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;"));
如果文件将在文件系统上,而不是作为 jar 文件的一部分捆绑,则第一个代码块是执行此操作的正确方法。在那种情况下 imagePath
应该是文件的绝对文件系统路径。您可以检查文件是否存在
System.out.println(file.exists());
如果图像文件将捆绑在您的 jar 文件中,则第二个代码块是执行此操作的正确方法。在这种情况下,imagePath
应该是相对于 class;以 /
开头的路径被解释为相对于 class 路径。如果在这种情况下路径不正确,getResource(...)
将 return null
.