当我从我的项目scr
目录中提供图像的绝对路径时,它会加载图像,但是当我尝试从指定路径或相对路径加载图像时,它会显示空错误,它不会读取图像。
我特意使用JFilechooser
目录获取路径,它只显示.jpg
图像并将文件列表提供给文件类型并逐个存储在字符串变量中,然后使用该变量加载图像。 / p>
我的代码:
final String fpath;
final File dir = new File("");
final JFileChooser file;
file = new JFileChooser();
file.setCurrentDirectory(dir);
file.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
file.showOpenDialog(contentPane);
final File[] lofFile = file.getCurrentDirectory().listFiles();
for (int i = 0; i < a; i++) {
if (lofFile[i].toString().substring(lofFile[i].toString().lastIndexOf(".") + 1).equals("jpg")) {
az = lofFile[i].toString();
}
}
private BufferedImage bg;
bg = ImageIO.read(getClass().getResource(az));
引发此异常:
java.lang.IllegalArgumentException:input == null!在javax.imageio.ImageIO.read(未知来源)
请帮忙吗?
答案 0 :(得分:2)
Class#getResource
不适用于从文件系统加载文件。 也许 ImageIO.read(az)
会有用。
但是你从File
获得了JFileChooser
个对象。使用它,你完全没有问题。如果没有理由,不要对文件名进行任何字符串操作。过滤特定后缀不是原因。