完整的本地路径(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));
最佳答案
您遇到的问题是,当您尝试使用相对路径打开文件时,它看起来与您运行程序的位置相关。您可以使用资源,而不是希望获得正确的路径。
BufferedImage img = ImageIO.read(
YourClassName.class.getResource(
"/mainclass/icons/my-image.png"
)
);
我认为您可能需要修改路径,因为我不知道您的包结构是什么。我还假设 Eclipse 将捆绑源文件夹中的资源文件。
关于java - 读取要在 JLabel 中显示的 "ImageIO.read"的图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60976527/