Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象为空,但在屏幕上可见_Java_Mouselistener - Fatal编程技术网

Java 对象为空,但在屏幕上可见

Java 对象为空,但在屏幕上可见,java,mouselistener,Java,Mouselistener,我正在用一个角色创建一个游戏: p = new Player(200, 200 ,this); 然后在鼠标听筒里我说: if(p != null){ deltaMousePlayerX= (p.getX()- x); deltaMousePlayerY= (p.getY() - y ); System.out.println(deltaMousePlayerX+","+deltaMousePlayerY); } 问题是,当我单击时,它没

我正在用一个角色创建一个游戏:

p = new Player(200, 200 ,this);
然后在鼠标听筒里我说:

if(p != null){
        deltaMousePlayerX= (p.getX()- x);
        deltaMousePlayerY= (p.getY() - y );
        System.out.println(deltaMousePlayerX+","+deltaMousePlayerY);
    }
问题是,当我单击时,它没有打印出任何内容,所以p是否为空?。 我怎么修理它


PS:该字符在屏幕上可见

能否提供将鼠标侦听器连接到此播放器对象的代码。添加一些更完整的代码。有了这些代码片段,很难说您在用文本控制台/DOS窗口运行应用程序时发生了什么?你能看到你打印的其他行吗。
p
值是相同的字段还是只有两个同名字段?字段不会神奇地变为
null
。您是否已向组件注册了MouseListener?我认为在这种情况下,最好的做法是删除鼠标侦听器中的所有代码,并在方法中使用System.out.println(“Test”)。通过这种方式,您将了解您是否已经注册/附加了鼠标侦听器,或者您当前的代码是否导致了此问题。