1
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);
    }

}

我希望我遇到的问题不是太具体,无法找到帮助。这总是对特定文件抛出异常。我从我的 windows 文件夹中加载了一个示例 jpg,它加载得很好。但是,我需要使用的 jpg 文件不会加载。我确信我使用的是正确的文件路径,如果我使用 canRead(),它会返回 true。我真的不明白为什么它不会加载。

有什么建议么?

4

1 回答 1

0

canRead() 没有用。因为 image = ImageIO.read(f); canRead() 将在 read() 函数中调用。如果 canRead() 返回 false,则会抛出 IOException("Can't read input file!"); 如果您不确定文件路径的正确性,则应将示例 jpg 和特定 jpg 放在一起。我认为问题出在您的 jpgs 文件中。ImageIO.read() 不会将它们解码为 jpg。

于 2013-12-24T01:43:50.823 回答