我只是用谷歌搜索并搜索了这个网站,找到了很多东西,但要么我不理解这个原则,要么我做错了。
实际上,Class和Image不在同一个目录中,但是为了便于测试,我把图像放在与我班级相同的文件夹中。
这两行:
ImageIcon img = new ImageIcon("gimmick_facepalm.png");
System.out.println(img.getIconWidth() + " " + img.getIconHeight());
输出总是-1 -1,所以我怀疑Java没有读入图像。
提示或解决方案将不胜感激:))
谢谢!
答案 0 :(得分:2)
如果你没有指定一个绝对路径(即Windows下的C:/ ...),那么当前目录将是执行程序的目录,而不是类文件夹(例如你在eclipse中的项目根目录,或者在你调用“java”命令时的位置。)
此外,您可以访问类路径包中的文件,如下所示:
File file = new File(ClassLoader.getSystemResource("name/of/package/"+fileName).toURI());
或直接使用ImageIcon:
new ImageIcon(ClassLoader.getSystemResource("name/of/package/"+fileName));
答案 1 :(得分:0)
尝试
URL url = ClassLoader.getSystemResource("gimmick_facepalm.png");
ImageIcon img = new ImageIcon(url);
System.out.println(img.getIconWidth() + " " + img.getIconHeight());