2015-12-09 81 views
1

目前,我指的是我的圖片的方式是通過使用代碼行:如何在不使用文件路徑的情況下引用圖像?

static ImageIcon img1 = new ImageIcon("src\\img1.png"); 
static ImageIcon img2 = new ImageIcon("src\\img2.png"); 

然而,當我這個出口從日食到一個.jar文件,圖片顯示不出來。是否可以在不設置完整文件路徑(例如(「C:\ XXXX \ XXXX \ XXXX.img1.jpg)」)的情況下引用映像,因爲如果將.jar放在閃存驅動器上,則完整的文件路徑將是無用的

+1

使用'Class#getResource',例如'getClass()。getResourc e(「/ img1.png」)' – MadProgrammer

+1

另外,Java知道系統中的路徑分隔符,並將其替換爲路徑中的任何'/'。上面的路徑可以寫成''src/img1.png'',它可以在任何系統,Windows,* nix等上運行,因爲它被硬編碼爲僅Windows, – markspace

+0

@markspace不正確。 Java不會爲文件路徑做任何特殊的事情。在Windows上使用正斜槓的唯一原因是Windows除了反斜槓外還允許它作爲分隔符。這取決於操作系統。 (請注意,我正在討論文件路徑,就像在問題中一樣。* Resource *路徑在Class.getResource中總是使用正斜槓) –

回答

0

在包中包含圖像創建的任何空的類實例:ImageLoader

如果要加載圖像:

ImageIcon img1 = new ImageIcon(ImageLoader.class.getResource("img1.png")); 

ImageLoader.class.getResource:將返回ImageLoader的網址class

相關問題