2016-08-18 83 views
1

我試圖導出包含som圖像的java項目,但導出後圖像不顯示。我讀過這些類似的問題和答案:將java項目導出爲帶有圖像的可運行jar文件

Eclipse exported Runnable JAR not showing images

Exporting Images with JAR in Eclipse (Java)

我已經嘗試了所有那些建議,但圖像還是不導出項目後顯示的不同選項。

我試過這個文件結構:

enter image description here

採用這種結構我使用此代碼創建圖像:

Image picture = new Image("file:src/Pictures/download.png"); 

而這個文件結構:

enter image description here

採用這種結構我使用此代碼創建圖像:

Image picture = new Image("file:Pictures/download.png"); 

當導出我選擇「包所需的庫到生成JAR」的項目:

enter image description here

的圖像當我從Eclipse運行程序時出現,但是一旦我導出它們就會消失。我究竟做錯了什麼?我真的覺得我已經嘗試了一切,但也許有一些我錯過的簡單細節?

謝謝!

回答

1

問題不在於創建jar文件,它與您閱讀圖像的方式不同,請在下面的代碼中讀取圖像,它將起作用。

ImageIO.read(ClassLoader.getSystemResource("image/button1.png")); 
+0

好的,你能解釋一下嗎?我退出了新的javafx,所以我不是專家;)該代碼似乎返回一個緩衝的圖像。我想將我的圖像放入圖像視圖中以在程序中顯示它。但是,在創建圖像視圖時,似乎無法使用緩衝圖像作爲輸入參數。我如何讓緩衝的圖像出現在程序中? – ekstroom

+0

我用這個代碼,現在它工作正常: ImageView imgViewPicture = new ImageView(); \t \t嘗試{ \t \t \t BufferedImage buffered = ImageIO.read(ClassLoader.getSystemResource(「Pictures/download.png」)); \t \t \t Image picture = SwingFXUtils.toFXImage(buffered,null); \t \t \t \t \t \t imgViewPicture = new ImageView(picture); \t \t \t imgViewPicture.setPreserveRatio(true); \t \t \t imgViewPicture。setFitHeight(250); \t \t}趕上(IOException的發送){ \t \t \t // TODO自動生成的catch程序塊 \t \t \t e.printStackTrace(); \t \t} 謝謝你的幫忙! :) – ekstroom

+0

'InputStream stream = getClass()。getResourceAsStream(「/ resources/icons/xyz.png」); ImageIcon icon = new ImageIcon(ImageIO.read(stream))'。你可以通過'icon.getImage()'來獲取圖像對象 –

相關問題