2012-02-17 18 views
0

簡單的Java桌面應用程序我使用NetBeans IDE的助手添加了一個JFrame窗體。對於這個框架,我想更改標題欄中的圖標。 我試圖在生成視圖類的構造函數的最後用下面的代碼可以這樣做:更改我的Java應用程序的圖標

ImageIcon ii = new ImageIcon(iconUrl); 
    this.getFrame().setIconImage(ii.getImage()); 

絃樂iconUrl是絕對正確的,對象II似乎是正常的,據我判斷從調試器的角度來看變量概述。 但是,標題欄中的圖標不會更改,它仍然是默認的java圖標。

爲什麼?

回答

4

你可以試試這個:

Image i = ImageIO.read(getClass().getResource("/path/to/image")); 
setIconImage(i); 

注意的是,這裏/將代表您src目錄

+0

太快了!它的工作,非常感謝! – bogus 2012-02-17 12:22:22

+0

太棒了!看看這裏:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – 2012-02-17 12:24:26

+0

當我把它放到我的構造函數中時,它會顯示「Can not find symbol:Class:Image」 。所以,它不知道類「Image」。怎麼了? – amsmath 2017-10-24 02:26:43

0

試試這個代碼

Image i = new ImageIcon(ClassLoader.getSystemResource("signal/icm/gui/images/oconp.png")).getImage(); 
setIconImage(i); 
+0

永遠不要使用ClassLoader訪問非系統資源,總是使用getClass()。getResource(stringPath);注意這個[訪問資源](http://docs.oracle.com/javase/7/docs/technotes/guides/lang/resources.html)文檔中的一行,「所有類加載器將首先搜索資源作爲系統資源,以類似於搜索類文件的方式。「。 – 2012-02-17 12:24:16

0

希望以下解決方案適用於您:

ImageIcon icon = new ImageIcon(IconURL); 
myImg = ImageIcon.getImage(); 
JFrame.setIconImage(myImg); 
相關問題