Example 7.1 shows a simple applet that uses the Java 1.0 event model. It overrides the mouseDown() and mouseDrag() methods to allow the user to scribble with the mouse. It overrides the keyDown() method and clears the screen when it detects the "C" key. And it overrides the action() method to clear the screen when the user clicks on a Clear button. We've seen applets much like this elsewhere in the book; this one is not pictured here.
import java.applet.*; import java.awt.*; /** A simple applet using the Java 1.0 event handling model */ public class Scribble1 extends Applet { private int lastx, lasty; // Remember last mouse coordinates. Button clear_button; // The Clear button. Graphics g; // A Graphics object for drawing. /** Initialize the button and the Graphics object. */ public void init() { clear_button = new Button("Clear"); this.add(clear_button); g = this.getGraphics(); } /** Respond to mouse clicks. */ public boolean mouseDown(Event e, int x, int y) { lastx = x; lasty = y; return true; } /** Respond to mouse drags. */ public boolean mouseDrag(Event e, int x, int y) { g.setColor(Color.black); g.drawLine(lastx, lasty, x, y); lastx = x; lasty = y; return true; } /** Respond to key presses. */ public boolean keyDown(Event e, int key) { if ((e.id == Event.KEY_PRESS) && (key == 'c')) { clear(); return true; } else return false; } /** Respond to Button clicks. */ public boolean action(Event e, Object arg) { if (e.target == clear_button) { clear(); return true; } else return false; } /** convenience method to erase the scribble */ public void clear() { g.setColor(this.getBackground()); g.fillRect(0, 0, bounds().width, bounds().height); } }
This HTML Help has been published using the chm2web software. |