2012-11-12 63 views
2

我想補充ImageIconJMenuItem說明像保存行動。
爲什麼下面的代碼不適合我?圖標添加到菜單項

JMenu file = new JMenu("File"); 
    menubar.add(file); 
    JMenuItem newgame = new JMenuItem("New"); 
    file.add(newgame); 
    newgame.setIcon(new ImageIcon("/Project1/zkre/new.gif")); 
+1

最有可能的圖標無法找到。嘗試編寫一個只顯示圖標的小代碼片段,看看它是否有效。注意:正常的方法是創建一個'Action'並使用'Action'作爲'JMenuItem'。然後使用可用的鍵值對將這個圖標和文本放置在「Action」中。但是,這不會解決你的問題圖標請 – Robin

+1

來看看如何[圖像添加到您的項目(http://stackoverflow.com/a/9866659/1057230),這【答案】(HTTP://計算器。 com/a/11372350/1057230)以獲得關於圖像放置的更多說明,如果您手動執行操作。 –

回答

3

也許要確保,如果你得到正確的圖像路徑:

java.net.URL imageURL = this.getClass().getResource("YOUR_IMAGE_PATH"); 
System.out.println(imageURL); //imageURL is printing correctly in console 
ImageIcon image = new ImageIcon(imageURL); 
// now add the image to your menubar 
4

通過你的代碼看起來你有你的Image打包在你的jar文件,你應該使用getResourceAsStream(..)getResource(..)提取它從像這樣的罐(異常處理中省略):

ImageIcon imageIcon=new ImageIcon(ImageIO.read(getClass().getResourceAsStream("/Project1/rawaz/new.gif"))); 

NB化妝小號你的文件名和路徑是正確的(因爲Windows文件系統不區分大小寫,但jar中的文件由區分大小寫的JVM處理)。

+0

的ImageIcon的ImageIcon =新的ImageIcon(ImageIO.read(新文件(的getClass()的getResourceAsStream( 「/ PROJECT1/rawaz/new.gif」)))); – ARDA

+0

@ARDA看到更新,不知道爲什麼我加了'new File()'的東西一定是有疲勞的:P –

-1

您只需將您的圖像文件到您的主項目文件夾。

E.g:

\工作區\ YOUR_PROJECT_NAME \ IMAGES_FILE