【发布时间】: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