将图标添加到菜单项

时间:2012-11-12 17:22:00

标签: java swing embedded-resource

我想将ImageIcon添加到JMenuItem以说明保存等操作。
为什么以下代码不适合我?

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

4 个答案:

答案 0 :(得分:4)

根据代码的外观,您的jar文件中包含Image,您应该使用getResourceAsStream(..)getResource(..)从jar中提取它(省略异常处理) :

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

NB 确保您的文件名及其路径的大小写是正确的(因为Windows文件系统不区分大小写,但jar中的文件由区分大小写的JVM处理)。

答案 1 :(得分: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

答案 2 :(得分:0)

请执行此操作,并确保您的路径图像正确无误。

newgame.setIcon(new ImageIcon(getClass().getResource("/Project1/zkre/new.gif")));

答案 3 :(得分:-1)

您只需将图像文件移动到主项目文件夹即可。

例如:

  

\工作空间\ YOUR_PROJECT_NAME \ IMAGES_FILE