尝试显示我的徽标时遇到问题。图片保存在与main.java同一个文件夹中
ImageIcon im = new ImageIcon("banner.png");
JLabel bam = new JLabel(im);
grid.add(bam);
我的语法有问题吗?
可能的问题有很多,但最可能的问题是,图像的位置与执行应用程序的位置不在同一上下文中。
比方说,main.java
位于某个目录中(为了论证起见,我们只说“path/to/class”),然后当你执行时main.java
,图像的路径会变成这样/path/to/class
,这意味着您应该使用类似...
ImageIcon im = new ImageIcon("path/to/class/banner.png");
这还假设图像尚未被 Jar'ed,因为ImageIcon(String)
需要文件系统上文件的路径。
如果程序已被 Jar'ed 那么您将无法使用ImageIcon(String)
,作为banner.png
不再是文件,而是资源,那么您需要使用类似...
ImageIcon im = new ImageIcon(getClass().getResource("/path/to/class/banner.png"));
Where /path/to/class
是包在哪里main.java
lives.
无论哪种情况,我都建议您使用ImageIO.read
相反,因为这实际上会引发IOException
当出现问题时,哪里ImageIcon
往往会默默地失败...
看一眼读取/加载图像 http://docs.oracle.com/javase/tutorial/2d/images/loadimage.html更多细节
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)