-1
编辑:我明白什么是NPE错误,我一直在努力寻找我的代码的哪个部分正在生成它。NullPointerException当在非常简单的代码上使用mouseClick时
我对java很陌生,很多编码在这里飞过我的脑海。
我一直在试图实现一个非常简单的程序,当您单击画布时只是简单地使一个简笔画跳转,但在尝试单击画布时它已经抛出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){}
}
的可能的复制[什么是空指针异常,怎么解决呢?( http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) –
这不会工作。鼠标点击事件在事件处理线程上处理。在那段时间内,屏幕不会重新绘制等等(重绘事件)。这意味着睡眠动画是不可行的。进一步的AWT是最古老的GUI。然后来到Swing,它仍然很活跃,同时还有JavaFX。尝试摆动示例。 –
啊,谢谢你的建议,在使用Saidul的修补程序后,我可以看到你的意思 - 该人跳过一个像素,但停留在那里。我所遵循的在线edX课程似乎只使用了AWT,如果它真的过时了,这有点令人沮丧。 – Jonathan