Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 鼠标听器没有反应_Java_Mouseevent_Awt_Mouselistener - Fatal编程技术网

Java 鼠标听器没有反应

Java 鼠标听器没有反应,java,mouseevent,awt,mouselistener,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

我无法让这个
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中发生的鼠标事件的侦听器。要做到这一点,学生只需定义程序需要响应的任何侦听器方法,然后调用addMouseSteners(),该方法将程序注册为MouseStener和MouseMotionListener

另一种选择是使用

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

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

addMouseListeners();
而不是

addMouseListener(this);
描述说: 使用GraphicsProgram本身作为嵌入式GCanvas中发生的鼠标事件的侦听器。要做到这一点,学生只需定义程序需要响应的任何侦听器方法,然后调用addMouseSteners(),该方法将程序注册为MouseStener和MouseMotionListener

另一种选择是使用

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

当你说它不工作时,症状是什么?mouseClicked方法被调用了吗?尝试在方法中放入System.out.println(“Got here!”)以查看。@Roy。当我在图形窗口上单击鼠标时,什么也没有发生。我按照您的建议做了,控制台上也没有打印任何内容,因此我猜没有调用mouseClicked方法。您是否在任何地方调用
run()
?如果不行,这些都不行…@Jon我是Java的学生。我们被告知使用run()作为起始方法,Eclipse将执行该方法作为类的起始点。它可以在我写的其他几个程序上工作。当你说它不工作时,症状是什么?mouseClicked方法被调用了吗?尝试在方法中放入System.out.println(“Got here!”)以查看。@Roy。当我在图形窗口上单击鼠标时,什么也没有发生。我按照您的建议做了,控制台上也没有打印任何内容,因此我猜没有调用mouseClicked方法。您是否在任何地方调用
run()
?如果不行,这些都不行…@Jon我是Java的学生。我们被告知使用run()作为起始方法,Eclipse将执行该方法作为类的起始点。它适用于我编写的其他几个程序。