【发布时间】:2019-11-24 23:50:38
【问题描述】:
我正在尝试为我的 Java 课程创建一个 Pacman 的基本实现,并创建了一个测试项目只是为了让运动正常工作(目前)。我将尝试在面板上移动JLabel,并尝试将JLabel 的图标设置为我已加载到项目中的PNG 文件。 PNG 文件位于名为 Images 的文件夹中,而我所有的其他类都位于同一项目的 src 文件夹中。当我尝试从我的 src 文件夹类中读取 PNG 文件时,我收到以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1400)
at pacman.<init>(pacman.java:16)
at screen.<init>(screen.java:9)
at driver.main(driver.java:6)
driver 创建一个screen 对象,然后创建一个pacman 对象,错误指向下面的pacman 类:
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
public class pacman {
Point pacLoc= new Point(0,0);
Direction pacDir=Direction.RIGHT;
int pacLives;
static int count=1;
int pacID;
BufferedImage pactest;
@SuppressWarnings("unused")
pacman(){
pacID=count;
switch(pacID) {
case 1:
try {
pactest=ImageIO.read(getClass().getResource("Images/lolface.png"));
} catch(IOException a1) {
a1.printStackTrace();
}
pacLoc.setLocation(100,100);
break;
case 2:
try {
pactest=ImageIO.read(getClass().getResource("Images/whyface.png"));
} catch(IOException a1) {
a1.printStackTrace();
}
pacLoc.setLocation(100,200);
break;
}
count++;
}
}
错误源于(我认为)ImageIO 没有找到 PNG 文件。我是否必须以某种方式将它们导入我的pacman 课程?在这种情况下,导入语法是什么?我应该提到我正在使用 Eclipse IDE,并且为了简单起见,我试图避免使用任何外部库。
编辑:
其他 2 个类目前还不是太大,所以如果有帮助,我也可以在这里发布它们。
编辑 2:
使用ImageIO.read(pacman.class.getResource("lolface.png")); 代替Images/lolface.png 有效。谢谢!
【问题讨论】:
标签: java javax.imageio