Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将图标添加到菜单项_Java_Swing_Embedded Resource - Fatal编程技术网

Java 将图标添加到菜单项

Java 将图标添加到菜单项,java,swing,embedded-resource,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")); 可能要确保您获得了正确的

我想将
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"));

可能要确保您获得了正确的图像路径:

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

根据代码的外观,您将
图像
打包到jar文件中,您应该像这样使用或从jar中提取它(省略异常处理):


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

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

例如:

\工作区\您的\项目\名称\图像\文件


而不是你写的,这样做,并确保您的路径图像

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

很可能找不到该图标。试着编写一个只显示图标的小代码段,看看是否有效。注意:通常的方法是创建一个
操作
,并将该
操作
用于
JMenuItem
。然后使用可用的键值对将图标和文本放置在
操作上。但这并不能解决您的图标问题。如果您手动操作,请查看如何操作,并了解有关图像放置的更多说明。ImageIcon ImageIcon=new ImageIcon(ImageIO.read(新文件(getClass().getResourceAsStream(“/Project1/rawaz/new.gif”))@ARDA看到更新,不知道为什么我添加了
新文件()
这件事一定很累:P
newgame.setIcon(new ImageIcon(getClass().getResource("/Project1/zkre/new.gif")));