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 }