-1
안녕하세요, 여기에 새로운 자바와 내가 간과 한 간단한 일이 될 것이라고 확신합니다. 어떤 도움을 주셔서 감사합니다. 내 주 수업에 대한 코드는 여기에 있습니다. 오류 코드 바닥스레드 "main"의 예외 java.lang.NullPointerException
package GameScreen;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class GameScreen extends JFrame
implements Runnable, KeyListener
{
private Thread animation = new Thread(this);
private Container back = getContentPane();
private AniScreen aniscreen = new AniScreen();
public GameScreen()
{
super("moving image");
setBounds(20,20,1024,768);
back.add (aniscreen, BorderLayout.CENTER);
animation.start();
addKeyListener(this);
setVisible (true);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
GameScreen gameScreen = new GameScreen();
}
@Override
public void run()
{
while (true)
{
aniscreen.repaint();
try
{
Thread.sleep(30);
}
catch(InterruptedException ex)
{
}
}
}
@Override
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()==KeyEvent.VK_DOWN)
{
aniscreen.moveplayer(0,50);
}
if (e.getKeyCode()==KeyEvent.VK_UP)
{
aniscreen.moveplayer(0,-50);
}
}
@Override
public void keyReleased(KeyEvent e)
{
aniscreen.moveplayer(0,0);
}
}
이에서의 오류 코드 :
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
at GameScreen.AniScreen.<init>(AniScreen.java:15)
at GameScreen.GameScreen.<init>(GameScreen.java:15)
at GameScreen.GameScreen.main(GameScreen.java:33)
Java Result: 1
이 인 aniscreen 클래스
package GameScreen;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
public class AniScreen extends JComponent
{
private int x = 0;
private int y = 0;
private int xMovement;
private int yMovement;
private ImageIcon CINEMA = new ImageIcon (getClass().getResource ("CINEMA.jpg"));
private ImageIcon survivor = new ImageIcon(getClass().getResource("survivor.jpg"));
@Override
public void paint (Graphics g)
{
x = x + xMovement;
y = y + yMovement;
g.drawImage(CINEMA.getImage(),x,y,100,100,null);
g.drawImage(survivor.getImage(),x,y,100,100,null);
}
public void moveplayer (int xmov, int ymov)
{
xMovement = xmov;
yMovement = ymov;
}
}
null이 무엇인지 확인하기 위해 디버깅을 했습니까? –
AniScreen 생성자가 실패합니다. 그 코드는 어디에 있습니까? – MadConan
문제점은 'AniScreen'에 있으며, 아직 설명하지 않았습니다. – roippi