java - 鼠标监听器没有响应

标签 java mouseevent awt mouselistener

我无法让这个 MouseListener 工作。为什么?单击鼠标时没有任何反应

import acm.program.*;
import acm.graphics.*;
import java.awt.event.*;

/** Draws an oval whenever the user clicks the mouse */
public class DrawOvals extends GraphicsProgram implements MouseListener {
  public void run() {
    addMouseListener(this);
  }

  public void mouseClicked(MouseEvent e) {
    GOval oval = new GOval(100,100,OVAL_SIZE, OVAL_SIZE);
    oval.setFilled(true);
    add(oval, e.getX(), e.getY());
    System.out.println("Got here!");
  }

  /* Private constants */
  private static final double OVAL_SIZE = 20;

  /* implements the required methods for mouse listener*/
  public void mouseEntered(MouseEvent arg0) {
    // TODO Auto-generated method stub
  }

  public void mouseExited(MouseEvent arg0) {
    // TODO Auto-generated method stub
  }
}

最佳答案

根据您在OP中的评论中提供的链接,您必须调用

addMouseListeners();

而不是

addMouseListener(this);

描述说: “使用 GraphicsProgram 本身作为嵌入式 GCanvas 中发生的鼠标事件的监听器。为此,学生所要做的就是定义程序需要响应的任何监听器方法,然后调用 addMouseListeners(),它将程序注册为 MouseListener 和 MouseMotionListener。”

另一个选项是使用

GCanvas canvas = getGCanvas();
canvas.addMouseListener(this);

关于java - 鼠标监听器没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9694381/

相关文章:

java - 如何将 edittext 值传递给另一个 Activity 的 TextView

c++ - 我试图将光标平稳地移动到随机点

java - 从 Java 监听系统鼠标点击

java - 在 JApplet 上使用 KeyAdapter 和 Thread 重置/重新启动我的迷你游戏

java - 如何在java编码中添加另一个圈

java - 如何在Java中捕获鼠标光标?

java - GUICE - 在运行时决定对象图

java - javassist中如何知道某个字段属于哪个对象实例?

java - AWSParameterStore获取所有键和值

android - pygame - 将对象链接到鼠标事件