MouseMotion和MouseMotionListener无法正常工作

时间:2012-02-01 02:09:10

标签: java applet mouse

好的,所以我做了一个完全正常的应用程序,并且遇到了MouseMotion和MouseMotionListener的问题:我的Canvas中根本没有调用它们。我认为这是我添加Canvas到框架的东西,但我创建了这个测试程序并且非常惊讶:

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)

现在,我非常困惑,我有一项任务需要明天的方法,所以任何帮助都非常感谢。谢谢!

2 个答案:

答案 0 :(得分:2)

你不能只实现一个监听器。你还必须注册它。您的Applet实际上并不知道此时甚至存在MouseListener。

由于这是作业,请查看http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

答案 1 :(得分:2)

您没有使用侦听器注册该组件。也许你可以试试这个:

   public void init(){
        addMouseMotionListener(this);   
   }