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; private Choice color_choices; public void init() { this.setBackground ( Color.white ); clear_button = new Button ( "Clear" ); clear_button.setForeground ( Color.magenta ); clear_button.setBackground ( Color.black ); this.add ( clear_button ); color_choices = new Choice ( ); color_choices.addItem ( "black" ); color_choices.addItem ( "red" ); color_choices.addItem ( "yellow" ); color_choices.addItem ( "green" ); color_choices.setForeground ( Color.black ); color_choices.setBackground ( Color.lightGray ); this.add ( new Label ( "Color: " ) ); this.add ( color_choices ); } public boolean mouseDown ( Event e, int x, int y ) { last_x = x; last_y = y; return true; } public boolean mouseDrag ( Event e, int x, int y ) { Graphics g = this.getGraphics ( ); g.setColor ( current_color ); g.drawLine ( last_x, last_y, x, y ); last_x = x; last_y = y; return true; } public boolean action ( Event event, Object arg ) { 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; } else if ( event.target == color_choices ) { if ( arg.equals ( "black" ) ) current_color = Color.black; else if ( arg.equals ( "red" ) ) current_color = Color.red; else if ( arg.equals ( "yellow" ) ) current_color = Color.yellow; else if ( arg.equals ( "green" ) ) current_color = Color.green; return true; } else return super.action ( event, arg ); } }