妙用java多线程机制实现多个时区时钟显示

妙用java多线程机制实现多个时区时钟显示

ID:32637614

大小:60.86 KB

页数:6页

时间:2019-02-14

妙用java多线程机制实现多个时区时钟显示_第1页
妙用java多线程机制实现多个时区时钟显示_第2页
妙用java多线程机制实现多个时区时钟显示_第3页
妙用java多线程机制实现多个时区时钟显示_第4页
妙用java多线程机制实现多个时区时钟显示_第5页
资源描述:

《妙用java多线程机制实现多个时区时钟显示》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、妙用Java多线程机制实现多个时区时钟显示【摘要】在许多公共场合下,需要提供时钟显示,如机场、火车站、汽车站、酒店等,特别是一些需要接待外宾的场所,处理显示本地区时间以外还必须显示其他时区时间。本文使用Java多线程机制实现多个时区时钟的显示。【关键词】类;对象;继承;接口;多线程机制1•问题描述Java多线程机制实现了异步执行环境,线程间的通信简单有效,每个线程彼此独立执行,一个程序可以同时使用多个线程来完成不同任务。依此可实现在窗口中显示北京时间、格林尼治时间、夏威夷时间和东京时区四个时区的时钟。2.问题实现定义从Jpanel控件继承生成clock类并实现Runnable接

2、口。在其构造方法中创建线程,通过其中的pain方法画出当前时区的时钟信息。在线程的run方法中检测当前CPU上线程是否为自身并让自身线程睡眠1000个时间单位,在主类DrawingCLock的方法中创建四个clock对象并加入到主类的frame控件中,从而实现四个时区的时钟同时显示。3.实现程序代码importjava.awt.*;importjava・awt・event・*;importjavax.swing.*;importjava.util.*;publicclassDrawingClock{JFrameframe;clockpanel1,panel2,panel3,pa

3、nel4;publicstaticvoidmain(Stringargs[]){DrawingClockdc=newDrawingClock();de.go();}publicvoidgo(){frame二newJFrame(”时钟”);frame・getContentPane()・setLayout(null);panell=newclock(160,150,”北京时间”,0);//线程1画北京时间时钟frame・getContentPane()・add(panel1);panel2=newclock(400,150,格林威治时间”,-7);////线程2画北京时间时钟fra

4、me.getContentPane().add(panel2);panel3=newclock(160,450,”东京时间”,1);//线程3画北京时间时钟frame.^etContentPane().add(panel3);panel4=newclock(400,450,”夏威夷时间",TO);//线程4画北京时间时钟frame.getContentPane().add(panel4);frame.setDefauItCloseOperation(JFrame.EXIT_ON_CLOSE);frame・setSize(600,650);frame.setVisible(tru

5、e);}}classclockextendsJPanelimplementsRunnable{Threadthrl二newThread(this);Stringtext;intz;Graphicsgraphics;DatecurrentDate=newDate();//获取当前日期信自Stringlastdate二currentDate.toString();//获取当前日期信息的字符串形式intxcenter,ycenter;//时钟的中心坐标值intradius=100;//时钟的半径voiddrawCircle(){graphics.drawArc(xcenter~rad

6、ius,ycenter-radius,radius*2,radius*2,0,360);for(inti二1;iCalendarnowcal=Calendar・getlnstance();s二nowcal.get(Calendar.SECOND);//获取当前的秒值m=nowcal.get(Calendar.MINUTE);//获取当前的分钟值h=nowcal.get(Calendar.HOUR);//获取当前的小时值h+二z;nowca1.set(Calendar・HOUR,h);today+=nowca1・getTime()・toString();//获取当前秒针、分针和时

7、针的末端坐标值xs=(int)(Math,cos(s*Math.PI/30-Math.PI/2)*(radius-10)+xcenter);ys二(int)(Math,sin(s*Math.PI/30-Math.PI/2)*(radius-10)+ycenter);xm=(int)(Math,cos(m*Math.PI/30-Math.PI/2)*(radius-40)+xcenter);ym=(int)(Math,sin(m*Math.PI/30-Math.PI/2)*(radius-40

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。