JAVA线程程序设计 小时钟 实验报告 附完整代码.doc

JAVA线程程序设计 小时钟 实验报告 附完整代码.doc

ID:49974370

大小:89.50 KB

页数:5页

时间:2020-03-03

JAVA线程程序设计 小时钟 实验报告 附完整代码.doc_第1页
JAVA线程程序设计 小时钟 实验报告 附完整代码.doc_第2页
JAVA线程程序设计 小时钟 实验报告 附完整代码.doc_第3页
JAVA线程程序设计 小时钟 实验报告 附完整代码.doc_第4页
JAVA线程程序设计 小时钟 实验报告 附完整代码.doc_第5页
资源描述:

《JAVA线程程序设计 小时钟 实验报告 附完整代码.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、线程程序设计一、课题内容和要求内容:设计和编写一个编写一个指针式时钟程序,应用线程实现时钟的走动。要求:本实验旨在通过实验,培养学生将JAVA线程的相关知识点(包括线程调度,线程同步等)有机结合并加以综合应用,在实验中设计多线程程序的能力。二、设计思路分析classClock:一个指针式时钟的主类classLayout:添加窗口和时钟组件classClockPaint:定义时钟组件三、概要设计publicclassClockextendsJFrame{publicstaticvoidmain(St

2、ring[]s);}classLayoutextendsJFrame{publicLayout();}classClockPaintextendsJPanelimplementsRunnable{intx,y,r;inth,m,s;doublerad=Math.PI/180;publicClockPaint(intx,inty,intr);publicvoidpaint(Graphicsg);publicvoidrun();}时钟的绘制:运行时钟:四、详细设计importjava.awt.*;im

3、portjavax.swing.*;importjava.util.*;publicclassClockextendsJFrame{publicstaticvoidmain(String[]s){newLayout();}}classLayoutextendsJFrame{//添加窗口和时钟组件publicLayout(){ClockPaintcp=newClockPaint(20,20,70);add(cp);setBounds(260,120,200,200);setResizable(fal

4、se);this.setTitle("指针式时钟");this.setVisible(true);}}classClockPaintextendsJPanelimplementsRunnable{//定义时钟组件intx,y,r;//时钟的位置坐标和半径inth,m,s;//小时,分钟,秒doublerad=Math.PI/180;//定义弧度publicClockPaint(intx,inty,intr){//构造函数this.x=x;this.y=y;this.r=r;Calendarnow=

5、Calendar.getInstance();//初始化日历对象s=now.get(Calendar.SECOND)*6;//获得初始秒转换成度数m=now.get(Calendar.MINUTE)*6;//获得初始分钟转换成度数h=(now.get(Calendar.HOUR_OF_DAY)-12)*30+now.get(Calendar.MINUTE)*6/12;//获得初始小时转换成度数加分钟实现连贯Threadt=newThread(this);//新建线程t.start();//启动线程

6、}publicvoidpaint(Graphicsg){//绘制时钟g.setColor(Color.BLACK);//画背景g.fillRect(0,0,r*3,r*3);g.setColor(Color.WHITE);//画圆g.drawOval(x,y,r*2,r*2);intd=0;//每6度画一个小点intx1,y1,x2,y2;for(inti=0;i<60;i++){x1=(int)((r-2)*Math.sin(rad*d));y1=(int)((r-2)*Math.cos(rad

7、*d));g.drawString(".",x+r+x1-1,x+r-y1+1);d+=6;}d=30;//从30度开始每30度画一个数字和一线for(inti=1;i<=12;i++){x1=(int)((r-14)*Math.sin(rad*d));y1=(int)((r-14)*Math.cos(rad*d));g.drawString(i+"",x+r+x1-4,x+r-y1+5);x1=(int)((r-6)*Math.sin(rad*d));y1=(int)((r-6)*Math.co

8、s(rad*d));x2=(int)((r-2)*Math.sin(rad*d));y2=(int)((r-2)*Math.cos(rad*d));g.drawLine(x+r+x2,y+r-y2,x+r+x1,y+r-y1);d+=30;}g.setColor(Color.RED);//按时间画秒针x1=(int)((0.8*r)*Math.sin(rad*s));y1=(int)((0.8*r)*Math.cos(rad*s));g.drawLine(x+r,y+r,x+r+x

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

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

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