Я пытаюсь создать базовую реализацию Pacman для своего курса Java и создал тестовый проект только для того, чтобы заставить движение работать (пока). Я собираюсь попробовать переместить JLabel
по панели и установить значок JLabel
в виде PNG-файла, который я загрузил в проект. Файл PNG находится в папке с именем Images, а все остальные мои классы находятся в папке src в том же проекте. Когда я пытаюсь прочитать файлы PNG из моих классов папки src, я получаю следующую ошибку:
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:
Использование ImageIO.read(pacman.class.getResource("lolface.png"));
вместо Images/lolface.png
работает. Спасибо!