您当前的位置:首页 > 互联网教程

如何用java实现一个计时器

发布时间:2025-05-19 12:08:10    发布人:远客网络

如何用java实现一个计时器

一、如何用java实现一个计时器

1、怎么还没人回答,看不过去了,用不用多线程根据你的程序需要,

2、public static void main(String[] args){

3、timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.

4、while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了

5、timer.cancel();//使用这个方法退出任务

6、// TODO Auto-generated catch block

7、static class MyTask extends java.util.TimerTask{

8、大概就是这样了,在根据你的业务需要查一下资料,就可以搞定了!

二、谁有用java的application编写的倒计时钟代码

1、分类:电脑/网络>>程序设计>>其他编程语言

2、是一个这样的倒计时钟:输入一个时间比如120分钟按开始后倒计时开始.在中途可以选择暂停.在剩下1分钟时会有提示.

3、要用application编写的哦.麻烦各位高手了.

4、 public class T extends Applet implements Runnable{

5、 Thread tHour= null,tMinute= null,tSecond= null;表示时针,分针和秒针的线程

6、 int hour_a,hour_b,minute_a,minute_b,second_a,second_b;表示时针,分针,秒针端点的整型变量

7、 int hour= 0,minute= 0,second= 0;获取当前时间的整型变量

8、绘制时针,分针和秒针的Graphics对象

9、 Graphics g_second= null,g_minute= null,g_hour=null;

10、存放表盘刻度的数组,供指针走动时使用

11、 double point_x[]= new double[61],point_y[]= new double[61];

12、存放表盘刻度的数组,供绘制表盘使用

13、 double scaled_x[]= new double[61],scaled_y[]= new double[61];

14、 g_second= this.getGraphics();

15、 g_second.setColor(Color.RED);

16、 g_minute= this.getGraphics();

17、 g_minute.setColor(Color.blue);

18、 g_second.translate(200,200);进行坐标系统变换,将新坐标系原点设在(200,200)处

19、 point_x[0]= 0; point_y[0]=-120;各个时针12点处的位置坐标(按新坐标系的坐标)

20、 scaled_x[0]= 0;scaled_y[0]=-140;12点处的刻度位置坐标(按新坐标系的坐标)

21、 double jiaodu= 6*Math.PI/180;

22、表盘分割成60分,将分割点的坐标存放在数组中

23、 for(int i= 0; i< 60; i++){

24、 point_x[i+1]= point_x[i]*Math.cos(jiaodu)-Math.sin(jiaodu)*point_y[i];

25、 point_y[i+1]= point_y[i]*Math.cos(jiaodu)+ point_x[i]*Math.sin(jiaodu);

26、 point_x[60]= 0; point_y[60]=-120;

27、 for(int i= 0; i< 60; i++){

28、 scaled_x[i+1]= scaled_x[i]*Math.cos(jiaodu)-Math.sin(jiaodu)*scaled_y[i];

29、 scaled_y[i+1]= scaled_y[i]*Math.cos(jiaodu)+ Math.sin(jiaodu)*scaled_x[i];

30、每当小程序重新开始时,首先消灭线程,然后重新开始创建线程

31、 if(start_count>= 2) start_count= 1;

32、 public void paint(Graphics g){

33、 g.drawOval(50,50,300,300);表盘的外圈

34、 for(int i= 0; i< 60; i++){

35、 g.fillOval((int) scaled_x[i],(int) scaled_y[i],10,10);

36、 g.fillOval((int)scaled_x[i],(int)scaled_y[i],5,5);

37、 hour=Integer.parseInt(s.substring(11,13));

38、 minute= Integer.parseInt(s.substring(14,16));

39、 second= Integer.parseInt(s.substring(17,19));

40、 if(Thread.currentThread()== tSecond){

41、 second_a=(int)point_x[second];

42、 second_b=(int)point_x[second];

43、 g_second.drawLine(0,0,second_a,second_b);秒针的初始位置

44、 g_second.drawString("秒",second_a,second_b);

45、 g_second.drawLine(0,0,second_a,second_b);用背景色清除前一秒时的秒针

46、 g_second.drawString("秒",second_a,second_b);

47、如果秒针与分针重合,恢复分针的显示

48、 if((second_a== minute_a)&&(second_b== minute_b)){

49、 g_minute.drawLine(0,0,minute_a,minute_b);

50、 g_minute.drawString("分",minute_a,minute_b);

51、如果秒针与时针重合,恢复时针的显示

52、 if((second_a== hour_a)&&(second_b== hour_b)){

53、 g_hour.drawLine(0,0,hour_a,hour_b);

54、 g_hour.drawString("时",hour_a,hour_b);

55、 catch(InterruptedException e){

56、 g_second.drawLine(0,0,second_a,second_b);用背景色清除秒针

57、 g_second.drawString("秒",second_a,second_b);

58、 second_a=(int)point_x[(i+1)%60];

59、 second_b=(int)point_y[(i+1)%60];每一秒走6度(一个单位格)

60、 g_second.setColor(Color.red);

61、 g_second.drawLine(0,0,second_a,second_b);

62、 g_second.drawString("秒",second_a,second_b);

63、 if(Thread.currentThread()== tMinute){

64、 minute_a=(int)point_x[minute];

65、 minute_b=(int)point_y[minute];

66、 g_minute.drawLine(0,0,minute_a,minute_b);

67、第一次过60-second秒就前进一分钟,以后每过60秒前进一分钟

68、 tMinute.sleep(1000*60- second*1000);

69、 g_minute.drawLine(0,0,minute_a,minute_b);

70、 g_minute.drawString("分",minute_a,minute_b);

71、 if((hour_a== minute_a)&&(hour_b== minute_b)){

72、 g_hour.drawLine(0,0,minute_a,minute_b);

73、 g_hour.drawString("时",hour_a,hour_b);

74、 catch(InterruptedException e){

75、 minute_a=(int)point_x[(i+1)%60];

76、 minute_b=(int)point_y[(i+1)%60];

77、 g_minute.setColor(Color.BLUE);

78、 g_minute.drawLine(0,0,minute_a,minute_b);

79、 g_minute.drawString("分",minute_a,minute_b);

80、 if(Thread.currentThread()== tHour){

81、 hour_a=(int)point_x[h*5+ minute/12];

82、 hour_b=(int)point_y[h*5+ minute/12];

83、 g_hour.drawLine(0,0,hour_a,hour_b);

84、 g_hour.drawString("时",hour_a,hour_b);

85、第一次过12-minute%12分钟就前进一个刻度,以后每过12分钟前进一个刻度

86、 tHour.sleep(1000*60*12- 1000*60*(minute%12)- second*1000);

87、 g_hour.drawLine(0,0,hour_a,hour_b);

88、 g_hour.drawString("时",hour_a,hour_b);

89、 catch(InterruptedException e){

90、 hour_a=(int)point_x[(i+1)%60];

91、 hour_b=(int)point_y[(i+1)%60];

92、 g_hour.drawLine(0,0,hour_a,hour_b);

93、 g_hour.drawString("时",hour_a,hour_b);

三、java如何获取当前时间 年月日 时分秒

java如何获取当前时间以及格式化需要用到两个类,如下图:

1.获取当前时间,并格式化为(年-月-日时:分:秒)。

SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println(df.format(t));

2.将java.util.Date转换为java.sql.Date格式。

java.sql.Date sqld= new java.sql.Date(t.getTime());

java.sql.Time sqlt= new java.sql.Time(t.getTime());

java.sql.Timestamp sqlts= new java.sql.Timestamp(t.getTime());

Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了C++中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。

Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。



相关内容FAQs: