JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc

上传人:wj 文档编号:1452065 上传时间:2023-04-30 格式:DOC 页数:5 大小:76.50KB
下载 相关 举报
JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc_第1页
第1页 / 共5页
JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc_第2页
第2页 / 共5页
JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc_第3页
第3页 / 共5页
JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc_第4页
第4页 / 共5页
JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc

《JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc(5页珍藏版)》请在冰点文库上搜索。

JAVA线程程序设计小时钟实验报告附代码Word文档下载推荐.doc

}

classLayoutextendsJFrame{

publicLayout();

}

classClockPaintextendsJPanelimplementsRunnable{

intx,y,r;

inth,m,s;

doublerad=Math.PI/180;

publicClockPaint(intx,inty,intr);

publicvoidpaint(Graphicsg);

publicvoidrun();

时钟的绘制:

运行时钟:

四、详细设计

importjava.awt.*;

importjavax.swing.*;

importjava.util.*;

publicstaticvoidmain(String[]s){

newLayout();

classLayoutextendsJFrame{//添加窗口和时钟组件

publicLayout(){

ClockPaintcp=newClockPaint(20,20,70);

add(cp);

setBounds(260,120,200,200);

setResizable(false);

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=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();

//启动线程

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*d));

g.drawString("

."

x+r+x1-1,x+r-y1+1);

d+=6;

}

d=30;

//从30度开始每30度画一个数字和一线

for(inti=1;

=12;

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.cos(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+x1,y+r-y1);

g.setColor(Color.BLUE);

//按时间画分针

x1=(int)((0.6*r)*Math.sin(rad*m));

y1=(int)((0.6*r)*Math.cos(rad*m));

g.setColor(Color.YELLOW);

//按时间画时针

x1=(int)((0.4*r)*Math.sin(rad*h));

y1=(int)((0.4*r)*Math.cos(rad*h));

g.setColor(Color.GREEN);

//显示时间

Calendarnow1=Calendar.getInstance();

g.drawString(

now1.get(Calendar.HOUR_OF_DAY)+"

+now1.get(Calendar.MINUTE)+"

+now1.get(Calendar.SECOND),0,10);

publicvoidrun(){//运行时钟

while(true){

try{

Thread.sleep(1000);

//中断一秒后重新运行

}catch(Exceptionex){

System.out.println(ex);

}

s+=6;

//秒针走6度

if(s>

=360){//秒针走完一分钟后重置

s=0;

m+=6;

if(m==72||m==144||m==216||m==288){//分针走完5分钟后重置

h+=6;

}

if(m>

=360){//分针走完一小时后重置

m=0;

if(h>

=360){//时针走完12小时后重置

h=0;

this.repaint();

//重新绘制时钟

五、测试数据及其结果分析

1时钟界面:

2结果:

输出正常。

六、调试过程中的问题

一开始没有考虑分钟走五分钟时针应走一小格,在参考机械时钟的设计后,实现了时钟的连贯走动。

七、程序设计总结

1、通过该实验掌握了应用线程实现时钟的走动的方法。

 

2、学会了编写时钟的算法、多线程的设计与使用。

3、在逐步地优化和调试中实现了一个较切合实际的时钟界面。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2