在非常简单的代码上使用 mouseClicked 时出现 NullPointerException
NullPointerException when using mouseClicked on very simple code
编辑:我明白 NPE 错误是什么,我一直在努力寻找我的代码的哪一部分产生了它。
我是 java 的新手,这里的很多编码都让我头疼。
我一直在尝试实现一个非常简单的程序,当您单击 canvas 时,它会简单地使火柴人跳跃,但在尝试单击 canvas 时它一直抛出 NullPointerException。
我完全理解我在下面使用的功能和实现远非最佳,但我只是想应用我学到的非常基础的东西,飞行前走路等等,所以我会很高兴就如何改进一般实现提出建议我真正想要的只是如何解决当前错误,谢谢!
import comp102x.Canvas;
import comp102x.ColorImage;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class JumpMan implements MouseListener {
private Canvas canvas;
public ColorImage jumpMan;
public JumpMan()
{
canvas = new Canvas();
canvas.addMouseListener(this);
ColorImage jumpMan = new ColorImage("jumpmanimg.png");
canvas.add(jumpMan,200,200);
}
public void mouseClicked(MouseEvent click)
{
for (int i=1; i<=50; i++)
{
jumpMan.setY(jumpMan.getY()+1);
pause(2);
}
for (int i=50; i>=0; i--)
{
jumpMan.setY(jumpMan.getY()-1);
pause(2);
}
}
private void pause(int sleepTime) {
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
System.exit(-1);
}
}
public void mousePressed(MouseEvent click){}
public void mouseReleased(MouseEvent click){}
public void mouseEntered(MouseEvent click){}
public void mouseExited(MouseEvent click){}
}
将您的代码更改为此 -
private Canvas canvas;
public ColorImage jumpMan;
public JumpMan()
{
canvas = new Canvas();
canvas.addMouseListener(this);
jumpMan = new ColorImage("jumpmanimg.png");
canvas.add(jumpMan,200,200);
}
现在就可以了....
编辑:我明白 NPE 错误是什么,我一直在努力寻找我的代码的哪一部分产生了它。
我是 java 的新手,这里的很多编码都让我头疼。
我一直在尝试实现一个非常简单的程序,当您单击 canvas 时,它会简单地使火柴人跳跃,但在尝试单击 canvas 时它一直抛出 NullPointerException。
我完全理解我在下面使用的功能和实现远非最佳,但我只是想应用我学到的非常基础的东西,飞行前走路等等,所以我会很高兴就如何改进一般实现提出建议我真正想要的只是如何解决当前错误,谢谢!
import comp102x.Canvas;
import comp102x.ColorImage;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class JumpMan implements MouseListener {
private Canvas canvas;
public ColorImage jumpMan;
public JumpMan()
{
canvas = new Canvas();
canvas.addMouseListener(this);
ColorImage jumpMan = new ColorImage("jumpmanimg.png");
canvas.add(jumpMan,200,200);
}
public void mouseClicked(MouseEvent click)
{
for (int i=1; i<=50; i++)
{
jumpMan.setY(jumpMan.getY()+1);
pause(2);
}
for (int i=50; i>=0; i--)
{
jumpMan.setY(jumpMan.getY()-1);
pause(2);
}
}
private void pause(int sleepTime) {
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
System.exit(-1);
}
}
public void mousePressed(MouseEvent click){}
public void mouseReleased(MouseEvent click){}
public void mouseEntered(MouseEvent click){}
public void mouseExited(MouseEvent click){}
}
将您的代码更改为此 -
private Canvas canvas;
public ColorImage jumpMan;
public JumpMan()
{
canvas = new Canvas();
canvas.addMouseListener(this);
jumpMan = new ColorImage("jumpmanimg.png");
canvas.add(jumpMan,200,200);
}
现在就可以了....