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();
}
GraphicsProgram
对键盘,要求是可接收焦点的
看上去真的不错啊》