2013-02-18 71 views

回答

8

將它們放入罐中,然後使用Class.getResource,Class.getResourceAsStream,ClassLoader.getResourceClassLoader.getResourceAsStream來訪問它們。這是最合適的取決於你在做什麼其他,但你可能想是這樣的:

Image image = new Image(Program.class.getResource("/images/foo.jpg")); 

...其中Program.class同一個jar文件中的任何類。或者,如果你在同一個文件夾作爲類存儲您的圖片(由你展開時),你可以只使用:

Image image = new Image(GameCharacter.class.getResource("knight.jpg")); 

這是一個相對資源名。 (相對於有問題的類。)

+0

如果我這樣鍵入,它會顯示「無法實例化類型圖像」。我有一個名爲Resources的類和一個名爲MountainBackground的圖像,所以我寫了Image image = new Image(Resources.class.getResource(「MountainBackground.png」)); – ramuh1231 2013-02-18 16:03:39

+0

@ user2081893:這只是一個隨機的例子 - 因此「類似」。我們不知道您正在編寫什麼類型的應用程序,或者您正在使用哪個圖像類。您應該相應地調整它 - 或者在問題中提供更多信息。 – 2013-02-18 16:08:29

+0

我得到它的工作!謝謝! – ramuh1231 2013-02-18 16:56:15

0

爲什麼你不能將它們嵌入到jar文件中?

更新:我怎麼沒在我的任務之一是: 內嵌在jar文件中的圖像,以及:

URL url = getClass().getResource("/banana.jpg"); 
if (url == null) 
{ 
    // Invalid image path above 
} 
else 
{ 
    // path is OK 
    Image image = Toolkit.getDefaultToolkit().getImage(url); 
} 
0
import java.net.URL; 

URL imageURL = getClass().getResource("/Icon.jpg"); 
Image img = tk.getImage(imageURL); 
this.frame.setIconImage(img); 
0

我的文件結構是:

./ - the root of your program 
|__ *.jar 
|__ path-next-to-jar/img.jpg 

代碼:

String imgFile = "/path-next-to-jar/img.jpg"; 
InputStream stream = ThisClassName.class.getClass().getResourceAsStream(imgFile); 
BufferedImage image = ImageIO.read(stream); 

用你自己的替換ThisClassName,你全部設置!

相關問題