java里mouselistener的问题

2025-03-02 03:57:13
推荐回答(3个)
回答1:

1、MousePressed改为mousePressed,小写的m。

2、MouseDragged改为mouseDragged,小写的m。

3、KeyPressed改为keyPressed,小写的k。

import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import acm.graphics.GObject;
import acm.graphics.GOval;
import acm.graphics.GPoint;
import acm.graphics.GRect;
import acm.program.GraphicsProgram;
import acm.util.RandomGenerator;
public class A extends GraphicsProgram {
  public void init() {
    GRect rect = new GRect(100, 200, 100, 200);
    rect.setFilled(true);
    add(rect);
    GOval oval = new GOval(10, 400, 100, 200);
    oval.setFilled(true);
    add(oval);
    addMouseListeners();
    addKeyListeners();
  }
  public void mousePressed(MouseEvent e) {
    last = new GPoint(e.getPoint());
    gobj = getElementAt(last);
  }
  public void mouseDragged(MouseEvent e) {
    if (gobj != null) {
      gobj.move(e.getX() - last.getX(), e.getY() - last.getY());
      last = new GPoint(e.getPoint());
    }
  }
  public void keyPressed(KeyEvent e) {
    if (gobj != null) {
      gobj.setColor(rgen.nextColor());
    }
  }
  private GObject gobj;
  private GPoint last;
  private RandomGenerator rgen = RandomGenerator.getInstance();
}

回答2:

GraphicsProgram
对键盘,要求是可接收焦点的

回答3:

看上去真的不错啊》