Я работаю в Java, и я хотел создать ArrayList из BufferedImages:NullPointerException Ошибка на изображения
ArrayList<BufferedImage> aNoteList = new ArrayList<BufferedImage>();
Затем я хочу, чтобы заполнить ArrayList с 197 BufferedImages в конструктор класса DrawPanel.
public DrawPanel(){
for(int i = 0; i < 197; i++){
try {
aNoteList.add(ImageIO.read(new File("a.png")));
} catch (IOException e) {
e.printStackTrace();
}
}
setPreferredSize(new Dimension(400, 600));
panelSize=getPreferredSize();
height=(int) panelSize.getHeight();
width=(int) panelSize.getWidth();
System.out.printf("%d, %d\n",height,width);
loadImage();
}
Тогда в классе DrawFrame, я создаю объект из класса DrawPanel называется холст. Затем я использую холст.
/*this checks to see if the song is at a specified time and calls the fall method in the DrawPanel class.*/
public void checkIfFall() throws IOException{
if(Song.getTime()/1000000000 == (jojo.getaArray()[canvas.getaI()] /1000000000)){
//System.out.println("A Fall");
canvas.fall(canvas.getANoteList().get(canvas.getaI() + 1), canvas.getLocA());
canvas.setaI(canvas.getaI()+1);
}
}
Я подозреваю, что настоящие проблемы лежат на методе падения, но я не знаю почему.
public void fall(BufferedImage img, Location loc) throws IOException{
if(img != null){
if(img == ImageIO.read(new File("a.png")))
x = 10;
if(img == ImageIO.read(new File("s.png")))
x = (width-s.getWidth())/2;
if(img == ImageIO.read(new File("d.png")))
x = width-d.getWidth()-20;
if(loc.getY()<=height){
System.out.println(img);
//offgc.drawImage(img, x, loc.getY(), null);
validate();
repaint();
makeMove(movePixel(), loc);
}
}
}
Я получаю NullPointerException, когда я прохожу изображение в метод DrawImage, но я не знаю, почему. Массив заполнен, он сказал, что изображение не равно нулю. Что не так?! Когда я распечатать изображение, я получил это:
[email protected]: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space = [email protected] transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width = 50 height = 50 #numDataElements 4 dataOff[0] = 3
Означает ли это что-нибудь?
Невозможно, чтобы какой-либо из условий 'img == ImageIO.read (...)' был бы 'истинным', так как' ImageIO.read' возвращает новый объект, и вы сравниваете ссылки. –
Можете ли вы опубликовать источник 'drawImage'? Это метод, который вы написали? –
'Я получаю исключение nullPointerException при передаче изображения в метод drawImage. Где drawImage? Это из класса «Graphics», и если так, то экземпляр «Graphics» null? Если у вас есть исключение, это помогает опубликовать код, в котором происходит исключение, а также полную трассировку стека. – copeg