MouseListener不起作用

时间:2017-09-01 19:41:33

标签: java input mouse frame mouselistener

我在尝试使用MouseListener时遇到了一些问题。我创建了一个名为MouseManager的类,它实现了MouseListener,然后我在框架上导入了MouseListener,但是当我点击框架时没有任何反应。 所以这是MouseManager类的代码:

public class MouseManager implements MouseListener {

@Override
public void mouseClicked(MouseEvent e) {
    int mx = e.getX();
    int my = e.getY();

    System.out.println("Clicked: " + mx + " " + my);

}

@Override
public void mouseEntered(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent e) {
    // TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent e) {
    int mx = e.getX();
    int my = e.getY();

    System.out.println(mx + " " + my);

}

@Override
public void mouseReleased(MouseEvent e) {
    int mx = e.getX();
    int my = e.getY();

    System.out.println("Released: " + mx + " " + my);

}

}

然后这是我用来实现MouseManager类的代码

MouseManager MouseMan = new MouseManager();
Window.frame.addMouseListener(MouseMan);

但正如我在没有任何反应之前所说的那样,控制台没有显示任何消息; 我试图将窗口的焦点设置为false但它继续不起作用。 抱歉我的英语不好。

2 个答案:

答案 0 :(得分:1)

您必须仅在同一个类中注册事件,即使用

注册MouseManager类
Frame objFrame = new Frame("MouseListener Demo");

objFrame.addMouseListener(this);

这里指的是当前班级的实例。 你也必须制作框架的对象,因为你没有直接扩展框架类。

然后只需调用make对象即可完成工作。

答案 1 :(得分:0)

您必须在blankArea和面板上注册鼠标事件。您应该阅读here了解更多详情。

以下是您需要做的一部分:

public class MouseManager implements MouseListener {
    Frame frame = new Frame();
    frame.addMouseListener(this); 
    ....