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 路径的位置。您显示的路径肯定与其中任何一个都无关。
我建议使用 Image
constructor taking a URL 并执行
Image page = new Image(new File(loadedBook.returnPage()).toURI().toString());
你也可以
Image page = new Image(new FileInputStream(new File(loadedBook.returnPage())));
我刚刚想出了如何从我的程序(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 路径的位置。您显示的路径肯定与其中任何一个都无关。
我建议使用 Image
constructor taking a URL 并执行
Image page = new Image(new File(loadedBook.returnPage()).toURI().toString());
你也可以
Image page = new Image(new FileInputStream(new File(loadedBook.returnPage())));