JavaFX 图像路径问题

JavaFX image pathway issues

我刚刚想出了如何从我的程序(EBookReader 是我的项目)中将压缩文件夹解压缩到文件夹 EBookReader/books 中。现在我有一个 /books/testbook/1.png(解压缩的内容)但是无论我做什么我都无法让程序在该路径上显示图像。

System.out.println(loadedBook.returnPage());
 Image page = new Image(getClass().getResourceAsStream(loadedBook.returnPage())); 
 ImageView imagePage = new ImageView();
 imagePage.setImage(page);
 imagePage.setFitWidth(350);
 imagePage.setFitHeight(500);
 imagePage.setPreserveRatio(true); 
 imagePage.setSmooth(true);
 imagePage.setCache(true);
 border.setCenter(imagePage);

loadedBook.returnPage() returns 字符串 "F:\EbookReader\books\testBook.png" 恰好是图像的位置 1.png 即使我手动将字符串输入到图像位置它仍然不起作用。我听说我不需要 getClass() 垃圾,但没有它也行不通。我让它工作的唯一方法是将图像直接放入 F:\EbookReader\src\ebookreader.

编辑:错误是输入流为空!

getResourceAsStream() 需要一个相对于当前 class 或相对于 class 路径的位置。您显示的路径肯定与其中任何一个都无关。

我建议使用 Imageconstructor taking a URL 并执行

Image page = new Image(new File(loadedBook.returnPage()).toURI().toString()); 

你也可以

Image page = new Image(new FileInputStream(new File(loadedBook.returnPage())));