MouseListener не отвечает - PullRequest
       26

MouseListener не отвечает

1 голос
/ 14 марта 2012

Я не могу заставить это 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
  }
}

1 Ответ

1 голос
/ 14 марта 2012

По ссылке, которую вы указали в комментариях в ОП, вы должны позвонить

addMouseListeners();

вместо

addMouseListener(this);

В описании сказано: «Используйте саму GraphicsProgram какслушатель событий мыши, происходящих во встроенном GCanvas. Для этого все, что нужно сделать студенту, - это определить любые методы слушателя, на которые должна ответить программа, а затем вызвать addMouseListeners (), который регистрирует программу как MouseListener иMouseMotionListener. "

Другой вариант - использовать

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