1

当我从我的项目scr目录中提供图像的绝对路径时,它会加载图像,但是当我尝试从指定路径或相对路径加载图像时,它会显示空错误,它不会读取图像。
我有JFilechooser专门使用目录的路径,它只显示.jpg图像并将文件列表提供给文件类型,并将图像一一存储在字符串变量中,然后想使用该变量加载图像。

我的代码:

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:输入 == 空!在 javax.imageio.ImageIO.read(未知来源)

请问有什么帮助吗?

4

1 回答 1

2

Class#getResource不适用于从文件系统加载文件。也许 ImageIO.read(az)会奏效。

但是你FileJFileChooser. 使用它,你完全没有问题。如果没有理由,不要对文件名进行任何字符串操作。过滤特定后缀不是原因。

于 2013-08-12T12:59:25.967 回答