2010-04-16 82 views
0

我有一個java小程序,我已經更改了窗口左上角顯示的圖像圖標。我使用的代碼是這樣的:Java小程序圖標不顯示

Toolkit kit = Toolkit.getDefaultToolkit(); 
    Image frameIcon = kit.getImage("src/myapp/resources/logo.png");   
    getFrame().setIconImage(frameIcon); 

一切工作正常,直到我部署小程序到獨立的jar。在這種情況下,顯示的圖標是默認圖標,就好像代碼無法找到圖像。但圖像是在裏面,雖然它在文件夾中:myapp/resources/

我在這裏做錯了什麼? 這是一些奇怪的java錯誤?

回答

1

您確定您將源代碼導出到jar文件中嗎?因爲你的圖像位於「src/myapp/resources/logo.png」中,所以你必須在你的jar文件中包含「src/myapp/resources」文件夾。

但是我建議你把你的圖像放在應用程序文件夾根目錄下的另一個文件夾中,比如「resources」,然後你就可以導出一個文件沒有源代碼的applet。

0

我設法找到了解決方法。我改變了:

Image frameIcon = kit.getImage("src/myapp/resources/logo.png");  

Image frameIcon = kit.getImage("logo.png");  

,然後部署罐子。之後,我將圖像複製到jar文件內的.class文件所在的相同位置,並且它可以正常加載。 我不喜歡這種解決方法,但它現在必須做。 src/resources文件夾存在並且具有內部映像,但不會加載。我認爲這是一個路徑規範問題,但我還沒有找到這個解決方案...

+0

如果「src/myapp/resources」文件夾實際存在於您部署的applet jar(爲什麼不只是「resources」?)你可以在目錄上預先加上一個前導「/」,這會使它在JAR文件系統的基礎上開始。 'kit.getImage(「/ src/myapp/resources/logo.png」);'應該工作。 – Nate 2010-04-16 17:31:27

+0

對。主要的斜線很重要! – Gene 2012-10-24 03:26:25