2015-11-06 131 views
0

我剛剛想出瞭如何從我的程序(其中EBookReader是我的項目)中將zip壓縮文件解壓縮到文件夾EBookReader/books中。現在我有一個/books/testbook/1.png(解壓縮的內容),但無論我做什麼,我都無法讓程序在該路徑上顯示圖像。JavaFX圖像路徑問題

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()返回字符串「F:\ EbookReader \書\ testBook \ 1.png」,這恰好是圖像1.png的位置,即使我手動輸入串入圖像位置它仍然不起作用。我聽說我並不需要getClass()垃圾,但如果沒有這種垃圾,它也無法工作。我已經得到它的唯一方法是如果我把圖像直接在F:\EbookReader\src\ebookreader

編輯:錯誤是輸入流爲空!

回答

0

getResourceAsStream()正在等待相對於當前類的位置或相對於類路徑的位置。你展示的道路當然與這兩者無關。

我建議使用Imageconstructor taking a URL和做

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

你也可以做

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

我最終使用做到了:文件鏡像文件=新的文件(loadedBook.returnPage()); Image page = new Image(imageFile.toURI()。toString());但你的方式是很整潔。 Thx的幫助! –