// This example is adapted from the book _Java in a Nutshell_ by David Flanagan. // Written by David Flanagan. Copyright (c) 1996 O'Reilly & Associates. import java.applet.*; import java.awt.*; public class Scribble extends Applet { private int last_x = 0; private int last_y = 0; private Color current_color = Color.black; private Button clear_button; // Called to initialize the applet. public void init() { // Set the background color this.setBackground(Color.white); // Create a button and add it to the applet. // Also, set the button's colors clear_button = new Button("Clear"); clear_button.setForeground(Color.black); clear_button.setBackground(Color.lightGray); this.add(clear_button); } // Called when the user clicks the mouse to start a scribble public boolean mouseDown(Event e, int x, int y) { last_x = x; last_y = y; return true; } // Called when the user scribbles with the mouse button down public boolean mouseDrag(Event e, int x, int y) { Graphics g = this.getGraphics(); g.drawLine(last_x, last_y, x, y); last_x = x; last_y = y; return true; } // Called when the user clicks the button or chooses a color public boolean action(Event event, Object arg) { // If the Clear button was clicked on, handle it. if (event.target == clear_button) { Graphics g = this.getGraphics(); Rectangle r = this.bounds(); g.setColor(this.getBackground()); g.fillRect(r.x, r.y, r.width, r.height); return true; } // Otherwise, let the superclass handle it. else return super.action(event, arg); } }