读取图像路径,其中包含要在 JLabel 中显示的"ImageIO.read"



完整本地路径(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));

您遇到的问题是,当您试图打开一个具有相对路径的文件时,它看起来与您运行程序的位置相对。您可以使用Resource,而不是希望获得正确的路径。

BufferedImage img = ImageIO.read( 
YourClassName.class.getResource(
"/mainclass/icons/my-image.png"
) 
);

我想你可能需要修改一下路径,因为我不知道你的包结构是什么。我还假设eclipse将绑定源文件夹中的资源文件。

最新更新