【问题标题】:Java - ImageIO throws IllegalArgumentExceptionJava - ImageIO 抛出 IllegalArgumentException
【发布时间】:2013-01-27 05:38:48
【问题描述】:

Java 开发人员您好,

所以我最近遇到了这个问题。这是和 SSCCE:

public class SampleClass extends JPanel{

    private Image img;
    private final String IMG_DIRECTORY = ("/res/BG.png");

    public SampleClass(){

        try{
            img = ImageIO.read(getClass().getResource(IMG_DIRECTORY));
        } catch (IOException ioEx) {
            ioEx.printStackTrace();
        }
    }

    @Override
    public void paintComponent(Graphics g){
        super.paintComponent(g);

        g.drawImage(img, 0, 0, null);
    }

}

这行抛出异常

img = ImageIO.read(getClass().getResource(IMG_DIRECTORY));

这是 StackTrace:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)
    at com.forte.project.chatservice.uicomponent.FrameBackground.<init>(FrameBackground.java:27)
    at com.forte.project.chatservice.ui.MainFrame.<init>(MainFrame.java:27)
    at com.forte.project.chatservice.ChatService.main(ChatService.java:18)

我做了以下事情:
- 谷歌。
- 更新了我的 Java
- .getResourceAsStream(IMG_DIRECTORY);
- this.getClass().getResource(IMG_DIRECTORY));
- MainClass.class.getClass().getResource(IMG_DIRECTORY);

【问题讨论】:

  • print getClass().getResource(IMG_DIRECTORY) 它会产生什么?
  • 你能指出第 27 行和第 18 行吗?
  • 不是SSCCE,不可编译。
  • @sansix 第 27 行是:img = ImageIO.read(getClass().getResource(IMG_DIRECTORY));和 18 @MainClass 是:SampleClass sample= new SampleClass();
  • @NikolayKuznetsov 在你的主类中设置类。

标签: java embedded-resource javax.imageio illegalargumentexception


【解决方案1】:

res 文件夹放置到src 文件夹解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多