2011-04-21 122 views
0

我在學習如何用Java編程的過程中編寫了一個Snake克隆。它是一個使用圖像的小程序(使用getImage(getDocumentBase(),「gfx/image.png」)載入init());當我在我的IDE(Eclipse)中運行小程序時,它運行良好,所有的圖像顯示應用程序中的Java小程序

我的目標是創建一個可執行的jar文件,我可以比applet更容易傳遞所以我創建了一個新類並使用JPanel來託管我的小程序。 getDocumentBase()總是返回null,導致在文件系統上找不到圖像,導致一個空的屏幕。

我知道遊戲運行,因爲我可以導航所有菜單並查看所有打印的文本。只是圖像未加載。

有沒有辦法解決這個問題?我應該加載我的圖像嗎?

感謝

回答

2

您可以通過使用getResource()方法從Class從你的jar文件中加載資源。在DevX有向您展示如何做到這一點的applet和應用程序一個很好的教程:

http://www.devx.com/tips/Tip/5697

還有從Oracle描述如何訪問資源的位置無關的文章:

http://download.oracle.com/javase/1.4.2/docs/guide/resources/resources.html

基本上你所訪問的圖像是這樣的:

URL myurl = this.getClass().getResource("/myimage.gif"); 
Toolkit tk = this.getToolkit(); 
img = tk.getImage(myurl); 
0

加載你的形象是這樣,而不是:

public void init() { 
    URL url = getClass().getResource("/gfx/image.png"); 
    Image image = getImage(url); 
} 

然後你gfx/image.png文件添加到您的罐子,保持路徑。請注意,jar文件只是zip文件。