java图形时钟[源码][附图]

图形时钟
一、需求分析:
随着时钟的普及,电子图形显示在电脑上显示已经必不可少。于是就需要一个在屏幕上显示一个图形时钟,时间与系统时间一致,且可以随着时间的走动准确的走动。
二、概要设计:
针对需求分析,通过合理整合将整个系统功能设计如下:

[img]http://dl.iteye.com/upload/attachment/325080/2cdcfe34-a4b3-3676-a6a7-1536763fe52f.png[/img]

其中秒针、分针、时针显示,日期时间的显示均连接到一个功能函数来完成该功能。
三、详细设计:
1、程序运用背景图片来显示时钟的方法,增加了设计出的图形时钟的美观性。
2、程序运用角度计算坐标的方法来计算秒、分、时针的坐标从而画出各个针,十分准确。
3、计算秒针、分针、时针坐标的算法
[img]http://dl.iteye.com/upload/attachment/325080/2cdcfe34-a4b3-3676-a6a7-1536763fe52f.png[/img]
X=COSΦ *R
Y=SINΦ *R
故得:
X_SECOND=(int) (X+R*Math.cos(d.getSeconds()*2*Math.PI/60-Math.PI/2));
Y_SECOND=(int) (Y+R*Math.sin(d.getSeconds()*2*Math.PI/60-Math.PI/2));
X_MINUTE=(int) (X+(R*0.8)*Math.cos(d.getMinutes()*2*Math.PI/60-Math.PI/2));
Y_MINUTE=(int) (Y+(R*0.8)*Math.sin(d.getMinutes()*2*Math.PI/60-Math.PI/2));
X_HOUR=(int) (X+(R*0.5)*Math.cos(d.getHours()*2*Math.PI/12+d.getMinutes()*2*Math.PI/(60*12)-Math.PI/2));
Y_HOUR=(int) (Y+(R*0.5)*Math.sin(d.getHours()*2*Math.PI/12+d.getMinutes()*2*Math.PI/(60*12)-Math.PI/2));
四、程序结构
1、程序结构说明:
本程序采用模块化设计方法,各个功能的实现都有具体的方法,在主函数调用相应的方法即可实现程序的要求。程序的整体性很强。
2、重要数据说明:
本程序中对日期数据进行格式化处理,使其输出符合国人的观看习惯。
3、函数清单:

/**定义一个装载界面的方法
* 方法将背景图片装载入界面
*/
public void loadBackground()
/**
* 定义秒针移动的方法
* @param d 将DATA中的秒数提取出来,跟据R计算出要画的点的坐标,然后将这个指针画出来
*/
public void miaoMove(java.util.Date d)
/**
* 定义一个将分钟动的方法
* @param d 将Data 传入,用其的分针数来计算对应坐标
*/
public void fenMove(java.util.Date d)
/**
* 定义一个时针动的方法
* @param d:Data 中取出小时数,计算对应坐标
*/
public void shiMove (java.util.Date d)
/**
* 定义一个将秒针动的方法2 用来将刚刚画的清掉
* @param d:只将上述方法的颜色
*/
public void miaoMove2(java.util.Date d)
/**
* 定义一个将分钟动的方法2,用来将刚刚画的清掉
* @param d:
*/
public void fenMove2(java.util.Date d)
/**
* 定义一个时钟动的方法2,用来将刚刚画的清掉
* @param d
*/
public void shiMove2(java.util.Date d)
/**
* 重写重绘方法
*/
public void paint(java.awt.Graphics g)


五、调试分析:
1、程序截图:
[img]http://dl.iteye.com/upload/attachment/325078/f08398af-d63a-310c-85e2-0772bea36406.png[/img]

2、程序调试
在调试中,发现界面在最小化之后,重新打开后图形显示不出来,将paint方法重写后,问题得到解决。

六、总结:
1、程序设计难点:
本程序的难点在于程序中钞针、分针、时针对应坐标的计算。
2、程序设计中的不足:
虽然本程序已基本实现将表画出的功能,但是界面上仍然不太美观、功能上也有待提高。

你可能感兴趣的:(java图形时钟[源码][附图])