This is the syntax highlighted version of InteractiveDraw.java.
import java.awt.event.*;
public class InteractiveDraw extends Draw
implements MouseListener, MouseMotionListener, KeyListener {
private DrawListener listener;
public InteractiveDraw(int width, int height) {
super(width, height);
}
// can only have one listener for now
public void addListener(DrawListener listener) {
// needed to make sure there is a window for listenting to events
show();
this.listener = listener;
f.addKeyListener(this);
f.addMouseListener(this);
f.addMouseMotionListener(this);
f.setFocusable(true);
}
// user types a key
public void keyTyped(KeyEvent e) {
listener.keyTyped(e.getKeyChar());
}
// user presses mouse button #1
public void mousePressed(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1)
listener.mousePressed(toUserX(e.getX()), toUserY(e.getY()));
}
// user releases mouse button #1
public void mouseReleased(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1)
listener.mouseReleased(toUserX(e.getX()), toUserY(e.getY()));
}
// user drags the mouse
public void mouseDragged(MouseEvent e) {
// seems to not recognize mouse dragging events if we specify a button???
// if (e.getButton() == MouseEvent.BUTTON1)
listener.mouseDragged(toUserX(e.getX()), toUserY(e.getY()));
}
// we don't support these methods
public void keyPressed (KeyEvent e) { }
public void keyReleased (KeyEvent e) { }
public void mouseMoved (MouseEvent e) { }
public void mouseEntered (MouseEvent e) { }
public void mouseExited (MouseEvent e) { }
public void mouseClicked (MouseEvent e) { }
}
Last updated: Sat May 22 07:32:41 EDT 2004
.
Copyright © 2004, Robert Sedgewick and Kevin Wayne.