-java模拟时钟课设.doc
《-java模拟时钟课设.doc》由会员分享,可在线阅读,更多相关《-java模拟时钟课设.doc(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date-java模拟时钟课设数字信号处理课程设计JAVA模拟时钟课设1.课程设计的目的Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象
2、的思想和设计方法解决实际问题的能力,开设了一周的Java程序设计课程设计。通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。2.设计方案论证2.1运行环境:JCreator +JDK平台 CPU:Pentium 2.8GHz以上内存:256MB以上硬盘空间:80G以上操作系统:Windows XP2.2设计思路及功能描述
3、Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C+语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。因此运用Java程序编写模拟时钟程序,实现简单显示时间的功能。本次课程设计做的是Java简单模拟时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。 程序实现了模拟时钟的基本功能。我设计的时钟有的界面良好,比较简洁美观,程序有很
4、强的实用性,实现程序与电脑的时间的同步。可以显示时钟,也可以显示分针秒针,并可以在相应位置调整时间。而且初始运行会自动与电脑的时间校对,一般默认为同步,但还可以自己再次调节,提高了实用性。本系统共包括1个java源文件。Clock源文件是本程序的主函数其作用是初始化棋盘。setCurrentTime源文件实现电脑设置时间。paintHourPointer源文件为时针. paintSecondPointer源文件实现人与电脑设置秒针. paintMinuteDot源文件人与电脑设置分针。2.3方案论证2.3.1详细设计类名: Clock 作用: 自定义主类,对鼠标拖拽的初始界面进行声明继承的父类
5、: JComponent类 实现的接口: 没有 表1-成员变量表Clock成员变量成员变量描述变量类型名称时针StringHour分针StringMinute秒针StringSecond时间点TextFieldtext_1表2-方法表Clock方法方法名功能备注setCurrentTime设置当前时间构造方法paintHourPointer设置时针接口方法paintSecondPointer设置秒针接口方法paintMinuteDot设置分针接口方法actionPerformed事件处理run程序运行2.3.2概要设计启动时钟注册界面秒针走时分针走时时针走时关闭时钟图1 程序基本框图程序中引入
6、的包:package Clockimport java.awt.Clockimport java.awt.Graphicsimport java.awt.event.WindowAdapterimport java.awt.event.WindowEventimport java.util.Calendarimport java.util.GregorianCalendar用户自定义类:类名:Clock作用:定义模拟时钟继承的父类:JFramepublic class clock extends JFrame定义的对象:ClockPaint size Resizable Location Ti
7、tle Visible WindowListener,WindowClosing 主要成员方法:public void center /定义小程序查看器的位置public void actionPerformed /定义处理异常机制定义子类:ClockPaint继承的父类名:JPanel继承的接口名:Runnableclass ClockPaint extends JPanel implements Runnableint h, m, s / 小时,分钟,秒主要成员方法:public ClockPaintthis.x = xthis.y = ythis.r = rs = now.get(Cal
8、endar.SECOND) * 6 / 获得秒转换成度数m = now.get(Calendar.MINUTE) * 6 / 获得分钟h = (now.get(Calendar.HOUR_OF_DAY) - 12) * 30+ now.get(Calendar.MINUTE) / 12 * 6 / 获得小时主要成员方法:public void paint(Graphics g) / 清屏super.paint(g)g.setColor(Color.BLACK)g.fillRect(0, 0, r * 3, r * 3) / 画圆g.setColor(Color.WHITE)g.drawOval
9、(x, y, r * 2, r * 2) / 秒针g.setColor(Color.RED)int x1 = (int) (r - 10) * Math.sin(rad * s)int y1 = (int) (r - 10) * Math.cos(rad * s)g.drawLine(x + r, y + r, x + r + x1, y + r - y1) / 分针g.setColor(Color.BLUE)x1 = (int) (r - r / 2.5) * Math.sin(rad * m)y1 = (int) (r - r / 2.5) * Math.cos(rad * m)g.dra
10、wLine(x + r, y + r, x + r + x1, y + r - y1) / 时针g.setColor(Color.CYAN)x1 = (int) (r - r / 1.5) * Math.sin(rad * h)y1 = (int) (r - r / 1.5) * Math.cos(rad * h)g.drawLine(x + r, y + r, x + r + x1, y + r - y1) / 数字g.setColor(Color.YELLOW)int d = 29for (int i = 1; i = 12; i+) x1 = (int) (r - 10) * Math.
11、sin(rad * d)y1 = (int) (r - 10) * Math.cos(rad * d)g.drawString(i + , x + r + x1 - 4, x + r - y1 + 5)d += 30 / 小点d = 0;for (int i = 0; i = 360) s = 0m += 6if (m = 72 | m = 144 | m = 216 | m = 288) h += 6if (m = 360) m = 0h += 6;if (h = 360) h = 0;this.repaint();用Java实现动画的原理与放映动画片类似,就是取若干个相关的图像或图片,顺序
12、、连续地在屏幕上先显示、后擦除,循环往复就可以获得动画的效果。在动画设计中,一般会用到paing( )、repaint( )、和update( )方法。在动画设计中,有时会存在抖动问题,但一般来说,浏览器能很好地解决显示和刷新问题。在图形设计中,若重写paint( )方法可以自动绘制所希望的图形,在需要更新图形时可调用repaint( )方法,而不需要重写repaint( )方法。至于update( )方法,一般情况下既不需要重写,也不需要调用。只是在动画设计中,如果仅重写paint( )方法,会产生抖动现象,为消除抖动现象,需要重写update( )方法。在主页中经常会看到卡通似的动画效果,
13、制作这种动画的原理也是很简单的,就是通过快速地放映许多张图片,利用人眼的视觉暂留特性来达到动画的效果。动画的质量除了取决于图片的好坏之外,动画中动画的平滑速度,也是非常关键的。2.4程序说明先是利用构造函数创建一个长为500,宽为200的窗体,颜色设置为black,并把窗体设计为固定大小,并且创建一个监听事件进行监听。随即创建一个时间计数器,最后实现ActionListener接口的实现方法。利用2D绘制图形的方法,在窗体左方画一个圆,并且绘制时钟上的12个汉字,然后利用Calendar类提供的HOUR,MINUTE,SECOND和MILLISECOND方法获得现在的时间,在计算时间和度数的关
14、系;在利用2D绘制图形的方法绘制出各指针,并设置不同的颜色。在利用drawString在窗体的右上方画出一个小的框并在里面现在和时钟相对数字时间;然后根据相同的方法在数字时间下面显示秒表功能。在设计的过程中,需要用到Swing组件和Swing容器与组件,布局管理器,事件处理,绘制图形,还运用到了类的继承,事件监听器和线程。“SimpleDateFormat formatter”用于格式化时间显示,“String lastdate”用于保存当前时间的字符串,“Font clockFaceFont”用于设置显示时钟里面的数字的字体;“Date currentDate”用于显示当前时间;“Color
15、 handColor”用于显示时针、分针和表盘的颜色;“Color numberColor” 用于显示秒针和数字的颜色,“public void init()”用于设计时钟格式并捕捉异常;“public void plotpoints(int x0, int y0, int x, int y, Graphics g)” 用于计算四分之一的圆弧;“public void circle(int x0, int y0, int r, Graphics g”) 用Bresenham算法来画圆,其中(x0,y0)是圆的中心,r为圆半径;“public void paint(Graphics g)”用于运
16、行时钟程序; “public void start()” applet的启动方法;“public void stop()” applet的停止方法;“public void run()” 线程的run方法。run( )方法就是分出去让程序同时运行的、用来处理休眠和重画图形的线程。3.设计结果与分析3.1设计结果当程序正常运行的时候,它能清晰的显示时钟界面。默认为与系统时间同步,如果出现错误,就会进行归零。运行界面如图图2运行界面3.2设计分析本程序可以在HTML文件中设置,变化出多姿多彩的时钟模型,在MyClock.class的源代码的编写过程中运用了paint( )、repaint( )、u
17、pdate( )等方法。时钟的绘制采用双缓冲图形处理机制,即先在缓冲区内绘制图形,再把图形显示到网页上可以有效的防止闪烁。时钟的不断绘制是通过一个线程不断读取系统时间,如果时间有变化即绘制。采用一个线程绘制。遇到的问题和解决方法:在用JAVA编写程序时,我遇到了很多困难,对很多的接口,类,方法都不是很熟悉,只好采用查看API文档,一个一个进行对照学习,同时也上网查看了有关模拟时钟的相关描述,还向同学请教了,翻阅了相关的书籍。程序异常处理:程序在运行过程中可能会出现错误且断正常的控制流,这就是异常处理。不提供处理异常代码的程序可能会在不期望终止的时候终止,甚至可能引发严重问题。Java的异常处理
18、子系统可以为程序员提供处理运行是错误即异常处理的能力,而且比其他语言提供的异常处理能力在形式上更简洁、更灵活,使用Java的异常处理子系统,程序员可以开发出比较健壮的程序。声明异常:声明异常是当方法执行时,声明方法中可能出现的错误。因为任何代码都可能出现系统错误和运行错误,所以Java不需要在方法中显示声明Error和RuntimeException,但是如果方法抛出其它异常,则必须在方法中显示声明它们。可以使用方法声明中的关键字throws声明方法中的异常。Public void myMethod() throws IOException抛出异常:在声明异常的方法中,如果出现异常,可以抛出异
19、常对象。声明异常是一个说明性的句子,只是表明方法可能会抛出异常,而真正抛出异常的动作是有抛出异常语句来完成的。抛出异常的语句如下:Throw new TheException();也可以使用以下的语句:TheException e=new TheException();Throw e;使用try-catch语句捕获异常在Java中,异常处理的核心语句是try和catch。虽然由JVM提供的默认异常处理程序对于我们调试程序很有帮助,但是通常我们希望自己处理异常,因为可以防止程序非正常终止,并可以有机会改正程序中的错误。Try-catch语句的语法形式为:try block of code to
20、monitor for errors catch(ExceptionTypel Obj1) handler for ExcepType1 catch(ExceptionType2 Obj2) handler for ExcepType2 4.设计体会本次Java课程设计我的题目是时钟,题目不算难,但我做的很艰苦。主要就是动手能力太差,理论知识掌握的不全面,自以为会不少,但真做起来,却不知道从哪下手了。又回去温习理论知识,请教老师,上网查资料,忙的不亦乐乎。不过经过努力总算是做出来了,还通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用。在设计的过程中我遇到的很多问题,在老师的帮助和自
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 模拟 时钟
限制150内