1. importjava.awt.*;
2. importjava.awt.event.ActionEvent;
3. importjava.awt.event.ActionListener;
4. importjava.util.*;
5. importjavax.swing.*;
6.
7. importjava.awt.Color;
8. importjavax.swing.Timer;
9. importjava.util.GregorianCalendar;
10. importjava.lang.Math;
11.
12. /**
13. *一个定时器 Timer 实现的钟表。
14. *
15. *@author赵学庆,Java 世纪网(java2000.net)
16. *
17. */
18. publicclassTextendsJFrameimplementsActionListener{
19. inthour,minute,second;
20. Calendarcal=newGregorianCalendar();
21. doublePI_60=2*Math.PI/60;
22. doublePI_12=2*Math.PI/12;
23.
24. T(){
25. Timertimer=newTimer(1000,this);
26. timer.start();
27. }
28.
29. publicvoidpaint(Graphicsg){
30. super.paintComponents(g);
31. setCurrentTime();
32. intclockRadius=(int)(Math.min(getWidth(),getHeight())*0.4);
33. intxCenter=getWidth()/2;
34. intyCenter=getHeight()/2;
35. g.drawOval(xCenter-clockRadius,yCenter-clockRadius,2*clock
Radius,2*clockRadius);
36. g.drawString("12",xCenter-5,yCenter-clockRadius+12);
37. g.drawString("9",xCenter-clockRadius+3,yCenter+5);
38. g.drawString("3",xCenter+clockRadius-10,yCenter+3);
39. g.drawString("6",xCenter-3,yCenter+clockRadius-3);
40. intsLength=(int)(clockRadius*0.8);
41. intxSecond=(int)(xCenter+sLength*Math.sin(second*PI_60))
;