ImageIO总是抛出异常

时间:2013-04-14 12:23:59

标签: background ioexception javax.imageio

public class BackgroundPanel extends JPanel {
    File f;
    BackgroundPanel(File file) {
        f = file;
    }

    @Override
    public void paintComponent(Graphics g) {
        Image image;
        try {
            image = ImageIO.read(f);
        }
        catch (IOException e) {
            image = null;
        }
        g.drawImage(image, 0, 0, 850, 1100, this);
    }

}

我希望我遇到的问题不是太具体而无法找到帮助。这总是为-specific-文件抛出异常。我从我的Windows文件夹中加载了一个示例jpgs,它加载正常。但是,我需要使用的jpgs不会加载。我相信我正在使用正确的文件路径,如果我使用canRead(),它将返回true。我真的无法弄清楚为什么它不会加载。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

canRead()没用。因为image = ImageIO.read(f); canRead()将在read()函数中调用。如果canRead()返回false,则会抛出IOException(“无法读取输入文件!”);如果您不确定文件路径是否正确,则应将示例jpgs和特定的jpgs放在一起。我认为问题在于你的jpgs文件。它们不会被ImageIO.read()解码为jpgs。