在我的项目中,我有2个包。 图片 - 包含图片和 通知 - 包含java文件
在notification / main.java中,我使用此代码从image获取Image对象
Image image = Toolkit.getDefaultToolkit().getImage("/images/key-16x16.png");
我无法获得图像。
如何修复此错误。
答案 0 :(得分:18)
我正在使用Netbeans开发Java桌面应用程序,我已经解决了我的问题。
Image image = new ImageIcon(this.getClass().getResource("/images/bell-icon16.png")).getImage();
“this”是一个 extends JFrame
类答案 1 :(得分:7)
/
表示绝对路径,保存Java web-apps,其中/
表示相对于上下文。所以,我建议使用相对URL,意味着摆脱前面的/
,然后提供正确的路径。
如果即使这样你无法解决它,尝试在你正在寻找图像的同一路径上创建一个文件。通过这种方式,您将了解到您的确切位置以及您应该在哪里寻找。
答案 2 :(得分:1)
您也可以尝试
Image image = new ImageIcon(path).getImage();
答案 3 :(得分:1)
我也是这样,事实证明你需要在你的src文件夹中创建一个包。 对于instace,如果你在src文件夹中创建一个名为images的包,那么你的相对路径就是 /images/yourimage.png。
请注意斜杠(/)必须在那里! 更多信息http://forums.macrumors.com/showthread.php?t=533922
它对我有用
答案 4 :(得分:1)
Toolkit tk = Toolkit.getDefaultToolkit();
Class<? extends JFrame> j = YOURJFRAME.getClass();
Image image = tk.createImage(j.getResource("/images/bell-icon16.png"));
尝试使用该代码,如果您有一个可行的JFrame。 如果你有一个Applet,那么只需使用
Toolkit tk = Toolkit.getDefaultToolkit();
Image image = tk.createImage("images/bell-icon16.png");
对于小程序,你永远不想在开头使用/,但是如果你有一个JFrame,并且你使用的是getResource,那么你需要在Path的开头使用/。
答案 5 :(得分:1)
如果上述解决方案不起作用,试试这个(对我有用):
Image image = Toolkit.getDefaultToolkit().createImage(this.getClass().getResource("/Images/bell-icon16.png"));
答案 6 :(得分:0)
SwingResourceManager.getImage(YourClass.class,"key-16x16.png");
getIcon
方法会将Icon返回为类似的
答案 7 :(得分:0)
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("../resources/MainIcon.png")));