【发布时间】:2020-04-01 17:11:42
【问题描述】:
完整的本地路径 (C:\\Users\\workspace\\myproject\\src\\eclipse\\mainclass\\icons\\my-image.png) 可以正常工作,但使用下面代码中的短路径会出现异常 javax.imageio.IIOException: Can't read input file!。
我在这里做错了什么?
JLabel lab_h1 = new JLabel();
BufferedImage img = null;
try {
img = ImageIO.read(new File("icons/my-image.png"));
} catch (IOException e) {
e.printStackTrace();
}
Image dimg = img.getScaledInstance(140, 40,Image.SCALE_SMOOTH);
lab_h1.setIcon(new ImageIcon(dimg));
【问题讨论】:
-
你不想使用新文件你想使用资源。你的班级叫什么名字?你应该这样做
new ImageIcon(MyClassName.class.getResource());然后你根本不需要使用 BufferedImage。 -
您使用的是哪个版本的 java?哪个 Eclipse 版本?包含您在问题中发布的代码的类的名称是什么?那个类在一个包里吗?如果是,包名是什么? How do I ask a good question? 包含很多关于什么是 stackoverflow 中好问题的好建议
标签: java swing bufferedimage embedded-resource javax.imageio