好吧,我做的是一个完全正常的应用程序,但在使用MouseMotion和MouseMotionListener时遇到了问题:它们在我的画布中根本没有被调用。我以为这是我将画布添加到框架中的事情,但我创建了这个测试程序,并感到非常惊讶:
import java.applet.Applet;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;
import java.awt.Graphics;
public class testapp extends Applet implements MouseMotionListener {
int x = 40;
public void mouseMoved(MouseEvent e) {
showStatus("mouse moved");
}
public void mouseDragged(MouseEvent e) {
showStatus("mouse dragged");
x++;
repaint();
}
public void paint(Graphics g) {
g.drawString("Hello World!", 40, x); //x SHOULD move it down! ugh...
}
}所以我使用BlueJ的漂亮的Applet运行器来运行,当我点击并拖动我的鼠标时,x不会增加!当我实现MouseListener并试图在其中一个实现的方法中增加一个变量时,也会发生同样的情况。
我应该重新启动计算机吗?我的JDK版本坏了吗?(我有Java 7,以防这是一个已知的bug)
现在,我非常困惑,我有一个作业,需要方法工作,明天到期,所以任何帮助都是非常感谢的。谢谢!
发布于 2012-02-01 10:14:29
您没有向侦听器注册组件。也许你可以试试这个:
public void init(){
addMouseMotionListener(this);
}发布于 2012-02-01 10:13:31
你不能仅仅实现一个监听器。您还必须注册它。您的Applet甚至不知道MouseListener在这一点上是否存在。
因为这是家庭作业,所以请复习http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html。
https://stackoverflow.com/questions/9089815
复制相似问题