The Java Program: Mouse.java

  1 // Mouse.java -- Simple mouse events in an applet (JDK 1.1)
  2 
  3 /*
  4      <applet code=Mouse width=350 height=250></applet>
  5 */
  6 
  7 import java.text.DateFormat;
  8 import java.text.SimpleDateFormat;
  9 import java.util.Date;
 10 import java.applet.Applet;
 11 import java.awt.Graphics;
 12 import java.awt.event.MouseAdapter;
 13 import java.awt.event.MouseMotionAdapter;
 14 import java.awt.event.MouseEvent;
 15 
 16 public class Mouse extends Applet {
 17    Date startDate = null;
 18    Date mouseDownDate = null;
 19    Date mouseDragDate = null;
 20    Date mouseUpDate = null;
 21    int down_x = 0, down_y = 0;
 22    int drag_x = 0, drag_y = 0;
 23    int up_x   = 0,   up_y = 0;
 24 
 25    public void init () {
 26       class MA extends MouseAdapter {
 27          public void mousePressed (MouseEvent evt) {
 28             mouseDownDate = new Date();
 29             mouseDragDate = null;
 30             mouseUpDate   = null;
 31             down_x = evt.getX();  down_y = evt.getY();
 32             System.out.println ("Mouse press");
 33             repaint ();
 34          }
 35          public void mouseReleased (MouseEvent evt) {
 36             mouseUpDate = new Date();
 37             up_x = evt.getX();  up_y = evt.getY();
 38             System.out.println ("Mouse release");
 39             repaint ();
 40          }
 41       }
 42       addMouseListener (new MA());
 43       class MMA extends MouseMotionAdapter {
 44          public void mouseDragged (MouseEvent evt) {
 45             mouseDragDate = new Date();
 46             drag_x = evt.getX();  drag_y = evt.getY();
 47             repaint ();
 48          }
 49       }
 50       addMouseMotionListener (new MMA());
 51    }
 52    
 53    public void start () {
 54       startDate = new Date();
 55       repaint();
 56    }
 57 
 58    static String getTime (Date d) {
 59       return (format.format (d));
 60    }
 61 
 62    final static DateFormat format = new SimpleDateFormat ("mm:ss");
 63    
 64    public void paint (Graphics g) {
 65       g.drawRect (0, 0, getSize().width-1, getSize().height -1);
 66 
 67       if (startDate != null) {
 68          g.drawString ("Started at " + startDate.toString(), 10, 40);
 69       }
 70 
 71       if (mouseDownDate != null) {
 72          g.drawString ("Mouse down at: "+getTime(mouseDownDate),10,60);
 73          g.drawString ("X: " + down_x + " Y: " + down_y, 10, 80);
 74          g.drawOval (down_x-5, down_y-5, 10, 10);
 75       }
 76 
 77       if (mouseDragDate != null) {
 78          g.drawString ("Mouse drag at: "+getTime(mouseDragDate),10,100);
 79          g.drawString ("X: " + drag_x + " Y: " + drag_y, 10, 120);
 80          g.drawLine (down_x, down_y, drag_x, drag_y);
 81          g.fillRect (drag_x-3, drag_y-3, 6, 6);
 82       }
 83 
 84       if (mouseUpDate != null) {
 85          g.drawString ("Mouse up at:   "+getTime(mouseUpDate),10,140);
 86          g.drawString ("X: " + up_x + " Y: " + up_y, 10, 160);  
 87     }
 88   }
 89 }