在非常简单的代码上使用mouseClicked时出现NullPointerException

时间:2016-09-14 10:46:32

标签: java nullpointerexception awt

编辑:我理解NPE错误是什么,我很难找到我的代码的哪一部分正在制作它。

我对java非常陌生,而且这里的很多编码都飞过我的脑海 我一直在尝试实现一个非常简单的程序,当你单击画布时它只是简单地跳动,但在尝试点击画布时它会抛出一个NullPointerException。

我完全理解我在下面使用的功能和实现远非最佳,但我只是尝试应用我已经拾起的基础知识,在飞行前走路以及所有这些,所以尽管我和#39;我很乐意接受如何改进一般实施的建议我真正想知道如何解决当前错误,谢谢!

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){} 
}

1 个答案:

答案 0 :(得分:0)

将您的代码更改为 -

private Canvas canvas;
public ColorImage jumpMan;

public JumpMan()
{
    canvas = new Canvas();
    canvas.addMouseListener(this);
    jumpMan = new ColorImage("jumpmanimg.png");
    canvas.add(jumpMan,200,200);
}

现在可以了......