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”)。通过这种方式,您将了解您是否已经注册/附加了鼠标侦听器,或者您当前的代码是否导致了此问题。