import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Example04 extends Applet
   implements MouseListener, MouseMotionListener {

   int mouse_x, mouse_y;  // the mouse coordinates
   boolean isButtonPressed = false;

   public void init() {
      setBackground( Color.black );

      mouse_x = getWidth() / 2;
      mouse_y = getHeight() / 2;

      addMouseListener( this );
      addMouseMotionListener( this );
   }

   public void mouseEntered( MouseEvent e ) { }
   public void mouseExited( MouseEvent e ) { }
   public void mouseClicked( MouseEvent e ) { }
   public void mousePressed( MouseEvent e ) {
      isButtonPressed = true;
      setBackground( Color.gray );
      repaint();
      e.consume();
   }
   public void mouseReleased( MouseEvent e ) {
      isButtonPressed = false;
      setBackground( Color.black );
      repaint();
      e.consume();
   }
   public void mouseMoved( MouseEvent e ) {
      mouse_x = e.getX();
      mouse_y = e.getY();
      showStatus( "Mouse at (" + mouse_x + "," + mouse_y + ")" );
      repaint();
      e.consume();
   }
   public void mouseDragged( MouseEvent e ) {
      mouse_x = e.getX();
      mouse_y = e.getY();
      showStatus( "Mouse at (" + mouse_x + "," + mouse_y + ")" );
      repaint();
      e.consume();
   }

   public void paint( Graphics g ) {
      g.setColor( isButtonPressed ? Color.black : Color.gray );
      g.fillRect( mouse_x-20, mouse_y-20, 40, 40 );
   }
}

