我想添加ImageIcon
以JMenuItem
说明New或save之类的操作。
为什么以下代码对我不起作用?
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
说明New或save之类的操作。
为什么以下代码对我不起作用?
JMenu file = new JMenu("File");
menubar.add(file);
JMenuItem newgame = new JMenuItem("New");
file.add(newgame);
newgame.setIcon(new ImageIcon("/Project1/zkre/new.gif"));
从代码的外观来看,您已将其Image
打包在 jar 文件中,您应该像这样使用getResourceAsStream(..)
或getResource(..)
从 jar 中提取它(省略异常处理):
ImageIcon imageIcon=new ImageIcon(ImageIO.read(getClass().getResourceAsStream("/Project1/rawaz/new.gif")));
注意确保您的文件名及其路径的大小写正确(因为 Windows 文件系统不区分大小写,但 jar 中的文件由区分大小写的 JVM 处理)。
也许确保您获得正确的图像路径:
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
而不是你写的,这样做并确保你的路径图像。
newgame.setIcon(new ImageIcon(getClass().getResource("/Project1/zkre/new.gif")));
您只需将图像文件移动到主项目文件夹即可。
例如:
\workspace\YOUR_PROJECT_NAME\IMAGES_FILE