版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA模拟时钟课设1 .课程设计的目的JavM言是当今流行的网络编程语言, 它具有面向对象、跨平台、分布应用等特点。 面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而 且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握 JavOS言的重要概念及其面向对象 的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了 一周的Jav邦序设计课程设计。通过此次课程设计,巩固所学JavOS言基本知识,增进JavOS言编辑基本功,掌握JDK Editplus、Eclipse JCreato等开发工具的运用,拓宽常用类库的应用。使学生通过该教
2、 学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java®言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。2 .设计方案论证运行环境:JCreator +JDKP台CPU Pentium 以上内存:256MB以上硬盘空间:80G以上操作系统:Windows XP设计思路及功能描述Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立 的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了 C+钻言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。这将减 少平常出错的50%。而且,Java
3、很小,整个解释器只需215K的RAM。因此运用Java程序编写模拟时钟程序,实现简单显示时间的功能。本次课程设计做 的是Java简单模拟时钟,它是图形界面、线程、流与文件等技术的综合应用,具界面主 要采用了包,包等。程序实现了模拟时钟的基本功能。我设计的时钟有的界面良好,比较简洁美观,程序有很强的实用性,实现程序与电脑的时间的同步。可以显示时钟,也可以显示分针秒针,并可以在相应位置调整时间。 而且初始运行会自动与电脑的时间校对,一般默认为同步,但还可以自己再次调节,提 图J实用性。本系统共包括1个java源文件。Clock源文件是本程序的主函数其作用是初始化棋 盘。setCurrentTime
4、源文件实现电脑设置时间。paintHourPointer源文件为时针. paintSecondPointer源文件实现人与电脑设置秒针.paintMinuteDot源文件人与电脑设置 分针。力杀论证2.3.1详细设计类名:Clock作用:自定义主类,对鼠标拖拽的初始界面进行声明继承的父类:JComponent类实现的接口 :没有表1-成员变量表Clock成员变量成员变量描述变量类型名称日卅StringHour分针StringMinute秒针StringSecond时间点TextFieldtext_1表2-方法表Clock方法方法名功能备注setCurrentTime设置当前时间构造方法pain
5、tHourPointer设置日卅接口方法paintSecondPointer设置秒针接口方法paintMinuteDot设置分针接口方法actionPerformed事件处理run程序运行2.3.2概要设计秒针走时分针走时时针走时关闭时钟图1程序基本框图程序中引入的包:package Clockimport用户自定义类:类名:Clock作用:定义模拟时钟继承的父类:JFramepublic class clock extends JFrame定义的对象:ClockPaintsizeResizableLocationTitleVisibleWindowListener , WindowClosi
6、ng主要成员方法:public void center, x + r + x1 - 1, x + r - y1 + 1)d += 6计结果与分析设计结果当程序正常运行的时候,它能清晰的显示时钟界面。默认为与系统时间同步,如果 出现错误,就会进行归零。运行界面如图图2运行界面设计分析本程序可以在HTML文件中设置,变化出多姿多彩的时钟模型,在的源代码的编写 过程中运用了 paint( )、repaint( )、update()等方法。时钟的绘制采用双缓冲图形处理机 制,即先在缓冲区内绘制图形,再把图形显示到网页上可以有效的防止闪烁。时钟的不 断绘制是通过一个线程不断读取系统时间,如果时间有变化即
7、绘制。采用一个线程绘制。遇到的问题和解决方法:在用 JAVA遇写程序时,我遇到了很多困难,对很多的接 口,类,方法都不是很熟悉,只好采用查看 API文档,一个一个进行对照学习,同时也 上网查看了有关模拟时钟的相关描述,还向同学请教了,翻阅了相关的书籍。程序异常处理:程序在运行过程中可能会出现错误且断正常的控制流,这就是异常 处理。不提供处理异常代码的程序可能会在不期望终止的时候终止,甚至可能引发严重 问题。Java的异常处理子系统可以为程序员提供处理运行是错误即异常处理的能力,而 且比其他语言提供的异常处理能力在形式上更简洁、更灵活,使用Java的异常处理子系 统,程序员可以开发出比较健壮的程
8、序。声明异常:声明异常是当方法执行时,声明方法中可能出现的错误。因为任何代码 都可能出现系统错误和运行错误,所以Java不需要在方法中显示声明Error和RuntimeException但是如果方法抛出其它异常,则必须在方法中显示声明它们。可以使用方法声明中的关键字throws声明方法中的异常。Public void myMethod () throws lOException抛出异常:在声明异常的方法中,如果出现异常,可以抛出异常对象。声明异常是 一个说明性的句子,只是表明方法可能会抛出异常,而真正抛出异常的动作是有抛出异 常语句来完成的。抛出异常的语句如下:Throw new TheExc
9、eption();也可以使用以下的语句:TheException e=new TheException();Throw e;使用try-catch语句捕获异常在Java中,异常处理的核心语句是try和catch。虽然由JVM提供的默认异常处理 程序对于我们调试程序很有帮助,但是通常我们希望自己处理异常,因为可以防止程序 非正常终止,并可以有机会改正程序中的错误。Try-catch语句的语法形式为:tryblock of code to monitor for errorscatch(ExceptionTypel Obj1)handler for ExcepType1catch(Exceptio
10、nType2 Obj2)handler for ExcepType24 .设计体会本次Java课程设计我的题目是时钟,题目不算难,但我做的很艰苦。主要就是动手 能力太差,理论知识掌握的不全面,自以为会不少,但真做起来,却不知道从哪下手了。又回去温习理论知识,请教老师,上网查资料,忙的不亦乐乎。不过经过努力总算是做 出来了,还通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用。在设计的过程中我遇到的很多问题,在老师的帮助和自己的思考下还是很好的完成了。这此课 程设计我懂得了写程序不能脱离实际,只凭主观办事,要努力拓宽知识面,拓展思维。事情就是如此,努力代表收获。通过这次课程设计,我才真
11、正领悟到艰苦奋斗”这一词的真正含义,我才感受到早期电子设计者为现代的社会付出。设计确实有些辛苦, 但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但现在可以, 这些天的设计中得到的东西却不比理论课上得到的少多少,我感觉我和Java的距离更加近了;我想说,确实很累,但当我看到自己所做的成果时,心中也不免产生兴奋;学习有成果了么。对Java编程有了一个基本的了解。这些天温习的内容越多,敲得代码越多,自己的 学习积极性也越在提高,感觉也越充实。越来越发现现在学习的只是 Java的基础,但涉 及的面还是很广泛的,这些都为以后进一步学习Java的高级特性打下了扎实的基础。 随 着课程难度
12、的慢慢加强,今后遇到的困难也必将会越来越多,但我相信自己一定能做好 这些的。在本次Java课程设计中,我要非常感谢我的指导老师,不但在课堂上教给了我很多 的Java的编程知识,编程思想,而且在这次课程设计中更教会了我动手的能力,真正的编出了自己的东西,还要感谢我的同学,他们在我遇到困难时也给了我很多帮助。感谢 我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次 报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把设计做得更 加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设 计能力。最后,我要感谢帮助过我的同学,他们也为我解决了
13、不少我不太明白的设计上 的难题。同时也感谢学院为我提供良好的做课程设计的环境。最后再一次感谢所有在设 计中曾经帮助过我的良师益友和同学。5 .参考文献1Java语言与面向对象程序设计M.朱福喜、尹为民、余振坤编著,武汉:武汉大 学出版社,2Java语言与面向对象程序设计M.印旻编著,北京:清华大学出版社,3Java程序设计实用教程M.朱站立、沈伟编著,北京:电子工业出版社,4孙一林、彭波、黄文宏.Java编程技术全接触M.北京:清华大学出版社5 丁振凡、薛清华.Java语言程序设计M.北京:清华大学出版社,6徐林林.Java Web程从入门到实践M.北京:清华大学出版社,赵振方、陈景霞.轻松学
14、Java编程M.化学工业出版社,6 附表public void setCurrentTimeAsSystemTime() ;importimportimportimportimportimportimportimportimport import128);public class Clock extends JComponent private static final Color INTEGRAL_COLOR = new Color(0, 128, privateint radius;privateCalendar currentTime=();private double s =;publ
15、ic Clock(int radius) = radius;public void setCurrentTime(Date time)dd(clock, ;();(null); ;(true);new Thread() public void run() while (true) try (1000); catch (InterruptedException ex) ();();();.start();int y1 = (int)(r - 10) * (rad * s);(x + r, y + r, x + r + x1, y + r - y1);,x + r + x1 - 1, x + r
16、- y1 + 1);d+=6;/显示时间Calendar now1 = new GregorianCalendar();+ ": " + + ": " + , 0, 10);public void run() while (true) try (1000);catch (Exception ex) s+=6;if (s >= 360) s = 0;m+=6;if (m = 72 | m = 144 | m = 216 | m = 288) h+=6;if (m >= 360) m = 0;h+=6;if (h >=360) h = 0;
17、();int x, y, r;int h, m, s;小时,分钟,秒double rad = / 180;public ClockPaint(int x, int y, int r) =x;=y;=r;Calendar now = new GregorianCalendar();s = * 6;/获得秒转换成度数m = * 6;/获得分钟h = - 12) * 30 + / 12 * 6;/ 获得小时Thread t = new Thread(this);();public void paint(Graphics g) /清屏(g);(0, 0, r * 3, r * 3);画圆;(x, y,
18、 r * 2, r * 2);/秒针;int x1 = (int)(r - 10) * (rad * s);/定义MyTimer类class MyTimer1 extends JFrame static int count=0; 判断是否重定义了时间/构造函数public MyTimer1()/定义窗口大小setSize(320, 200);/定义窗口标题setTitle("测试自定义时钟类!");Container c = getContentPane();/ new ClockCanvas("北京时间", "GMT+8")(new
19、 ClockCanvas("北京时间", "GMT+8"); /定义接口interface TimerListener1void timeElapsed(Timer1 t);class Timeri extends Thread / 类 Timeriprivate TimerListenerl target;private int interval;public Timer1(int i, TimerListenerl t)target = t;interval = i;setDaemon(true);public void run() try whil
20、e (interrupted。)sleep(interval);(this); catch(InterruptedException e) class ClockCanvas extends JPanel /clockcanvas implements TimerListenerlstatic int seconds = 0;private String city;private GregorianCalendar calendar;/构造函数public ClockCanvas(String c, String tz)city = c;calendar = new GregorianCale
21、ndar(tz);Timeri t = new Timer1(1000, this);();setSize(180, 180);/绘制钟面public void paintComponent(Graphics g)(g);(100, 5, 120, 120);(101,6, 118, 118);/分离时间double hourAngle = 2 * (seconds - 3 * 60 * 60) / (12 * 60 * 60);double minuteAngle = 2 * (seconds - 15 * 60) / (60 * 60);double secondAngle = 2 * (seconds - 15) / 60; public void timeElapsed(Timer1 t) (new Date();if=1) int a=1;seconds=*60*60+*60+;s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业信用报告-河南泰昌园林绿化有限责任公司
- 企业信用报告-湖北长晟发展有限责任公司
- 插接挂饰教学设计-2025-2026学年小学劳动三年级上册苏教版《劳动与技术》
- 公务员面试初级面试题及答案
- 公务员面试殡仪面试题及答案
- 公务员面试 制度面试题及答案
- 公务员面试 创业面试题及答案
- 公务员廉洁面试面试题及答案
- 公务员考试干活试题及答案
- 《加与减-十年的变化》教学设计-2023-2024学年北师大版数学二年级下册
- 钣金加工过程作业指导书
- 电子元器件标示及实物对照
- 自主移动机器人教学课件第4章 导航规划 2 避障规划和轨迹规划
- 耕地合法永久转让协议书
- 芜湖仅一机械有限公司年产500万套汽车零部件及通讯设备压轴件生产线项目(承诺制项目)环境影响报告表
- JJG 1189.4-2022测量用互感器第4部分:电力电压互感器
- 第六章 社会分层与社会流动
- 压力管道强度计算书
- 物业管理服务拟投入设备一览
- 律师尽职调查工作方案
- 矿山工程工程量清单项目及计算规则
评论
0/150
提交评论