JAVA实验报告二(运用JavaFx实现时钟动画)

合集下载

Java时钟软件设计报告

Java时钟软件设计报告

佛山科学技术学院《可视化编程技术》课程设计报告时钟软件设计学生姓名:***学号:**********年级专业:11级教育技术学2班指导老师:***学院:教育科学学院广东★佛山提交日期:2013年6月目录1. 前言 (2)2.概要设计 (3)2.1 开发环境 (3)2.2 计算器功能 (3)2.3 界面设计 (3)2.4 类的框架结构图 (4)3. 详细设计 (4)3.1 使用的JAVA类的说明 (4)3.2 类的主要方法 (5)3.2.1 处理按了运算符后的计算 (5)3.2.2 处理输入字符 (6)3.2.3 进制的转换 (6)3.2.4 设计总体认识 (7)3.2.5 程序流程图 (8)4. 运行结果 (8)5. 测试分析 (9)5.1 程序运行情况 (9)5.2 程序异常处理 (9)6. 源程序 (9)参考文献 (27)设计总结 (27)摘要:本程序在框架中新建一个容器,用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间;用一个永真循环,来对当前时间显示的更新,用java.io.File来实现对文件读写,设计了一个按钮,用来选择文件WAU或MID,用java.applet.Applet 播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距.关键字:java时钟,时钟类,方法,事件1 前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。

文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的时钟,可以清楚地知道时间和设定一个时间来提醒自己,满足日常基本的工作学习和生活需要。

Java是由Sun公司开发的新一代纯面向对象的网络编程语言。

其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。

JAVA课程设计 闹钟的设计与实现项目报告 附源代码

JAVA课程设计 闹钟的设计与实现项目报告 附源代码

Java 设计报告书课程名称:JAVA语言程序设计设计题目:闹钟的设计与实现院系:计算机科学与信息工程系学生姓名:学号:专业班级:指导教师:许研2010 年12 月28 日目录一、题目描述 (1)二、设计思路 (1)三、运行结果 (5)四、源代码 (6)五、总结 (10)六、参考文献 (10)闹钟的设计与实现一、题目描述:结合JAVA图形界面的知识设计一个闹钟二、设计思路1、设计要求:编写闹钟钟程序,要求画出时钟面板,动态的显示当前时间,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能与可以自己选择闹钟提示声音提示功能,并在闹钟设定的输入框中有简单的排错功能。

2、算法基本描述:本程序先是在框架中新建了一个容器,然后用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间,并用一个永真循环,来对当前时间显示的更新,引入java.io.File来实现对文件的读写操作,程序设计了一个选择按钮,用来选择文件,并且声明只能选择,WAU、MID的文件,引入用java.applet.Applet 来播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距。

3、设计思想与内容1、画出类的UML简图Clock类:Clock类中的变量ri, shi, fen, miao, dangqian, guanji: JLabe lqueding, dakai: JButtonmusic, RI, SHI, FEN, MIAO: JTextFieldh = 0, f = 0, m = 0, r = 0 :intFo, foo: booleansoumd1: public AudioClipClock类中的函数public clock()public static void main(String agrs[])public void run()2、各方法功能描述列表Clock类方法功能Main()执行main函数Clock()Clock类的构造函数,用于对时钟界面的初始化Run()用于对时钟的动态显示的执行,并判断是否设定了闹钟时间,若当前时间与设定的时间相等则播放选定的音乐3、主要模块算法描述(1)当前动态时间的显示的设计与实现。

利用JAVA实现一个时钟的小程序

利用JAVA实现一个时钟的小程序

JAVA课程项目报告项目题目:利用JAVA实现一个小时钟的程序专业班级:10软件工程利用JAVA实现一个时钟的小程序1.软件开发的需求分析在当今的信息时代,时钟已经成为人们生活中必不可少的应用工具,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。

使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。

面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。

为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。

此次课程设计的题目为简单的小时钟程序设计,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。

使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。

2.具体实现2.1设计思路Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。

Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。

这将减少平常出错的50%。

而且,Java很小,整个解释器只需215K的RAM。

因此运用JAVA程序编写小时钟程序,实现简单显示时间的功能。

本次课程设计做的是Java简单小时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。

程序实现了小时钟的基本功能。

2.2设计方法在设计简单小时钟时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。

Java编写动态时钟的标准显示

Java编写动态时钟的标准显示
g.drawString("Minute", 135, getHeight()-15);
g.setColor(Color.white);
g.fillRect(180, getHeight()-25, 30,15);
g.setColor(Color.black);
g.drawString(""+minute, 190,getHeight()-15 );
public ClockAnimation()
{
add(clock);
Timer timer=new Timer(1000,new TimerListener());
timer.start();
}
private class TimerListener implements ActionListener
g.drawString("Hour", 60, getHeight()-15);
g.setColor(Color.white);
g.fillRect(90, getHeight()-25, 30,15);
g.setColor(Color.black);
g.drawString(""+hour, 95,getHeight()-15 );
g.drawString("Second", 230, getHeight()-15);
g.setColor(Color.white);
g.fillRect(280, getHeight()-25, 30,15);
g.setColor(Color.black);
g.drawString(""+second, 290,getHeight()-15 );

Java模拟时钟制作案例

Java模拟时钟制作案例

程序代码

主类
程序代码
程序代码
运行效果

运行效果
面板刻度


绘制刻度
l1=new Line2D.Double[60]; for(int i=0 ;i<l1.length;i++) { double b[]=new double[4]; int j; if(i%5==0){ if(i%15==0){ j=50; }else { j=60; }

构建框架


主类time1. 实现接口。 继承Jframe。 添加main方法
完善代码
添加timer 通过Date获取当前时间 通过SimpleDateFormat处理时间格式。 实例化主类,使其在控制台打印当前时间, 每隔一秒打印一次。 修改后的代码如下。

程序代码

导入类和文件。
程序代码
数字时钟
添加JLabel,在JLabel上显示时间 把JLabel添加到JFrame上。

程序代码

导入类和文件。
程序代码
数字时钟

运行效果。
绘制秒针

使用直线绘制秒针。
定义秒针Line2D.Double l Line2D.Double l =new Line2D.Double(125,50,125,125);
面板刻度


绘制刻度
}else { j=70; } b[0]=125+80*Math.cos((i*6-90)*Math.PI/180d); b[1]=125+80*Math.sin((i*6-90)*Math.PI/180f); b[2]=125+j*Math.cos((i*6-90)*Math.PI/180f); b[3]=125+j*Math.sin((i*6-90)*Math.PI/180f); l1[i] =new Line2D.Double(b[0],b[1],b[2],b[3]); }

java 时钟

java 时钟

实习报告课程名称信息系统认知实习实习题目java时钟动画专业班级学号学生姓名实习成绩指导教师2010年1月前言设计基本的内容。

现在的各种时钟花样百出,千奇百怪,功能亦是越来越先进了。

我很喜欢这些各式各样的时钟,所以希望自己也能设计出一个来。

于是,我希望自己能够用自己所学的Java知识设计出一个自己的时钟动画,即使是最简单的,但我相信这是暂时的。

只要我能够努力学好Java知识,将来一定能够设计出更好更完美的时钟动画。

第一章技术介绍Java技术介绍、编程环境介绍JAVA技术介绍:Java技术是一门编程语言,也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。

(题外话:Java热门的原因之一就是一个跨平台的概念,和跨平台类似跨浏览器的好处也是如此,这也是现在AJAX技术流行的原因之一。

另外现在热炒的RIA富客户端的概念下的技术除了AJAX外还有Adobe的Flash/Flex,微软的Silver Light,SUN的JavaFX等,个人更看好FLash/Flex,原因是Flash插件在浏览器端占用率很高)Java技术的重要性就不讲了,从最近流行的一个统计数据上来说,目前世界上编程语言Java 、C 、VB、C++依次排名前4位,这排名本身不说明什么,至少也是工业界对编程语言使用上一个侧面的反映吧。

Java编程语言与众不同之处在于:Java程序既是编译型的(转换为一种称为Java字节码的中间语言),又是解释型的(JVM 对字节码进行解析和运行)。

编译只进行一次,而解释在每次运行程序时都会进行。

编译后的字节码采用一种针对JVM 优化过的机器码形式;解释器是JVM 的实现。

这段是摘自网上的,编译原理学的不是很好,对这门语言的背后运行机制理解到这样了。

Java平台是一种纯软件平台,它有三个版本Java SE、JavaEE、Java ME。

Java SE(Java Platform,Standard Edition)这个版本以前叫做J2SE,后来版本号从1.4直接跳到5.0,其实也就是1.5,所以就叫成Java SE 5.0。

使用Swing绘制动态时钟

使用Swing绘制动态时钟

使⽤Swing绘制动态时钟本⽂实例为⼤家分享了利⽤Swing绘制⼀个动态时钟的具体代码,供⼤家参考,具体内容如下效果代码在下⾯,可跳过解析。

前⾔编程实现⼀个时钟利⽤Swing绘制⼀个时钟,只能是静态的。

利⽤Calendar类获取当前的时分秒,然后根据数学公式绘制相应的时钟就可以了。

如果静态的时钟已经⾜够你使⽤,那么就⽆须⽤到线程的概念。

如何让时钟“动起来”当然了,动起来肯定是不可能的,但是我们可以利⽤⼈眼的视觉,让时钟“好像动起来”,其实着很简单,只要让当前的图像每隔⼀秒种刷新⼀次就可以了。

这样秒针在动,数字时间也在动,整个时钟就好像“动起来了”线程利⽤线程实现刷新,刷新间隔是1秒,每次刷新都先⽣成当前的时间,然后JVM⼜会⾃动调⽤paintComponent⽅法绘制图形,这样就好像时钟动起来了。

Thread thread = new Thread(){public void run(){while(true){StillClock clock = new StillClock();MessagePanel messagePanel1=new MessagePanel(clock.getHour()+":"+clock.getMinute()+":"+clock.getSecond());//设置显⽰居中messagePanel1.setCentered(true);//设置前景颜⾊messagePanel1.setForeground(Color.black);//设置字体messagePanel1.setFont(new Font("Courier",Font.BOLD,16));add(clock);add(messagePanel1,BorderLayout.SOUTH);clock.setVisible(true);validate(); //接下来会每隔⼀秒重绘⼀次时钟——即(从frame中将clock组件删除),因此调⽤validate⽅法,使容器重新布置其⼦组件try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}clock.setVisible(false);remove(clock); //在⽗容器中将其删除clock.invalidate(); //使容器失效}}};thread.start();线程代码解析Thread thread = new Thread(){};注意结尾使⽤了分号,既然使⽤了线程,那么需要重写它的run⽅法:public void run(){}既然想让时钟⼀直动起来,那么死循环是最好的选择while(true){}在while⾥⾯,每次都先⽣成当前的时间:StillClock clock = new StillClock();这⾥⽣成了⼀个⽆参构造的StillClock类,StillClock的⽆参构造⽅法⾥⾯会⾃动⽣成当前的时间。

JAVAfx画时钟

JAVAfx画时钟

中南大学《Java语言程序设计》实验报告题目:运用JavaFx画时钟及实现时钟动画学生姓名:**指导老师:鲁鸣鸣学院:信息科学与工程学院专业班级:***********完成时间:2014/12/18目录摘要 (3)第一章绪论 (4)1.1实验背景 (4)1.2 实验意义 (4)1.3 javaFx的介绍 (4)第二章需求分析 (5)2.1题目描述 (5)2.2题目分析 (6)2.3 解决方案 (6)第三章详细设计 (7)第四章运行结果 (17)第五章调试报告 (18)参考文献 (18)摘要Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。

由James Gosling和同事们共同研发,并在1995年正式推出。

Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。

1995年更名为Java,并重新设计用于开发Internet应用程序。

用Java 实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。

从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。

另一方面,Java技术也不断更新。

Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

基于全新的JavaFx进行了有关时钟的操作。

完成了有关时钟的绘图以及时钟的动画。

关键词:javaFx 时钟第一章绪论1.1实验背景Java是计算机专业学生的一门专业课程,着重讲述Java这门程序设计语言的基本概念、语法和编程的技术方法对于学生从事Java的研发、使用和维护有重要意义。

通过本课程的学习,我们应能从软件开发、设计等角度去了解、分析和研究Java语言,建立起对Java的全面认识,树立全面地、发展地看问题的观点,从而加深对各种类型Java系统的了解。

Java课程设计-时钟图形模拟

Java课程设计-时钟图形模拟

课程设计任务书目录1 设计内容及要求 01.1 设计内容 01.2 设计目的及意义 02 概要设计 02.1功能简介 02.2功能说明: (1)2.3 总体程序框图 (1)3 设计过程 (2)3.1各个模块程序流程图 (2)3.2运行界面及关键代码 (4)4设计结果与分析 (7)4.1设计结果 (7)4.2分析 (8)5 总结 (8)6 参考文献 (9)附程序清单及源程序 (10)1 设计内容及要求1.1 设计内容通过编程最终使电脑屏幕显示模拟时钟,并正常运行显示表针时间,电脑上呈现一个图种的模型表示电脑上的时间,并可以模拟时钟走动。

1.2 设计目的及意义设计目的及意义:熟悉Visual c++ 6.0软件的应用,C语言相关函数,语句的学习,查找资料代码等,编程、调试、运行、效果显示调整,完成上传,熟悉编程语言,了解程序运行以及图像显示等C语言的应用,通过编程实现既定功能。

培养自学能力,独立思考能力,将理论形成实际运用,同时可以掌握下列运算符的使用:1 .数据类型(整形、实型、字符型、指针、数组、结构等)。

2 .运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等)。

3 .程序结构(顺序结构、判断选择结构、循环结构)5 .复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。

6 .学会编制结构清晰、风格良好、数据结构适当的C语言程序。

2 概要设计2.1功能简介实现功能如下:(1)在屏幕上最终显示一个图形时钟(用程序绘制一个与时钟样式相似即可),能模拟机械钟表行走。

(2)数字式显示时间与指针式显示时间一致,且各指针运动规律正确。

(3)能准确的利用数字显示时间和日期。

(4)按ESC可以退出程序。

2.2功能说明:内容:指针式时钟模块完成在屏幕上显示一个活动时钟,模拟机械钟表行走,时针,分针,秒针不同颜色且顺时针旋转,获取系统时间;数字式时钟模块完成显示时间格式年月日时分秒,小时为24小时制,分和秒为60进制与指针式的时钟显示时间同步并获取系统时间。

Java课程设计报告(LED时钟)

Java课程设计报告(LED时钟)

攀枝花学院学生课程设计(论文)题目: LED时钟学生姓名:张奕学号: 201210802028 所在院(系):数学与计算机学院专业:信息与计算科学班级: 2012级信息与计算科学1班指导教师:吴建兵职称:讲师二O一四年六月十六日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书题目时钟(LED方式)1、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)编写一个时钟(LED方式)程序,要求:(1)在屏幕上用文字显示日期(年、月、日、星期)与时间。

(2)时间显示要求能动态显示时、分、秒。

3、主要参考文献[1]朱福喜.《Java语言程序设计》(第二版).科学出版社[2]陈国君等.《Java程序设计基础》(第二版).清华大学出版社[3] Deitel.《Java大学基础教程》(第六版).电子工业出版社[4] MaryCampione.《Java语言导学》(第四版).机械工业出版社[5] Y.Daniel Liang.《Java语言程序设计基础篇》(第六版). 机械工业出版社[6] Kathy Sierra.《Head First Java》(第二版).东南大学出版社4、课程设计工作进度计划1、设计动员,布置任务,选题(1天)2、查阅资料,分析、讨论与设计(1天)3、编写程序,进行调试(4天)4、完成模块联调,进行测试(2天)5、成果验收,完成设计报告(2天)指导教师(签字)日期年月日教研室意见:年月日学生(签字):接受任务时间:年月日注:任务书由指导教师填写。

课程设计(论文)指导教师成绩评定表题目名称时钟(LED方式)评分项目分值得分评价内涵工作表现20% 01 学习态度 6 遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。

02 科学实践、调研7 通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。

java实训报告总结范文(精选3篇)

java实训报告总结范文(精选3篇)

java实训报告总结范文(精选3篇)java实训报告总结范文篇1一、课程设计名称及主要内容:1、课程设计名称:时钟动画2、课程设计的主要内容:以下题目任选一个:(1)图形界面类,如科学计算器、绘图板、日历、游戏程序等。

(2)动画类,编制功能较复杂、效果较好的Applet动画程序。

(3)数据处理类,如学生学籍、课程成绩、图书编目、仓库货物等数据录入查询程序。

(4)其他类型,自选题目,须经指导老师同意。

我所选的题目是动画类的Applet动画程序,主要任务是用Java 程序设计一个时钟动画。

二、程序的设计思想和流程图:1、设计思想:现在的各种时钟花样百出,千奇百怪,功能亦是越来越先进了。

我很喜欢这些各式各样的时钟,所以希望自己也能设计出一个来。

于是,我希望自己能够用自己所学的Java知识设计出一个自己的时钟动画,即使是最简单的,但我相信这是暂时的。

只要我能够努力学好Java知识,将来一定能够设计出更好更完美的时钟动画。

2、流程图:三、程序介绍:1、设计方法及步骤:λ题目分析:根据《课程设计任务书》要求,分析题目,构造出程序的基本思路(算法设计)。

画出程序设计结构框图。

λ构造数据结构:根据程序结构框图和题目分析结果(采用算法),构造程序所用各项数据,各种窗体及他们之间的联系。

λ构造程序框架:在窗体确定之后,根据算法设计出所用各个窗体之间的调用关系。

λ程序设计:①画出程序功能框图和结构框图;②根据框图设计程序;③编译程序调试程序,使程序可以使用;④完备程序功能。

λ程序打包:所设计程序汇总,将程序分类归入相应子目录,完成程序所有设计要求。

2、完成情况:经过一系列的Java程序代码的设计,虽然过程中遇到了许多的问题,但是最终解决了所有的问题,准确的设计出了时钟动画,运行情况正常。

3、类的关系:“public class AnimatorDemo”是公共类,且是程序中的唯一的一个类。

4、构造方法、成员变量和成员方法的功能说明:“Thread timer”用于显示时钟的线程;“SimpleDateFormat formatter”用于格式化时间显示; “String lastdate”用于保存当前时间的字符串;“Font clockFaceFont”用于设置显示时钟里面的数字的字体; “Date currentDate”用于显示当前时间;“Color 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)”用于运行时钟程序; “public void start” applet的启动方法;“public void stop” applet的停止方法;“public void run” 线程的run方法。

JAVA课程设计(论文)-时钟

JAVA课程设计(论文)-时钟

i++)
{
double
pos[]
calcPos(r, g2d, pos[0],
paintMinuteDot(r, } paintHourPointer(r, paintMinutePointer(r, paintSecondPointer(r,
pos[1],
i
%
5
==
0);
g2d); g2d); g2d);
5
double
+
second
/
60.0)
*
6;
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
Shape * 0.08,
pointerShape angle);
=
createPointerShape(r
*
0.8,
r
*
0.04,
r
g2d.setColor(Color.LIGHT_GRAY); g2d.fill(pointerShape); g2d.setColor(Color.DARK_GRAY); g2d.draw(pointerShape); } private { int int int hour minute second angle 30; pointerShape angle); = createPointerShape(r * 0.6, r * 0.06, r = = = = currentTime.get(Calendar.HOUR); currentTime.get(Calendar.MINUTE); currentTime.get(Calendar.SECOND); 90 (hour + minute / 60.0 + second / void paintHourPointer(int r, Graphics2D g2d)

JAVA课程设计钟表(含代码)

JAVA课程设计钟表(含代码)

Java程序课程设计任务书钟表的设计与开发1、主要内容:创建一个钟表。

借助swing类和接口内部类的实现,在本程序中以实现Runnable接口内部类的形式创建多线程对象。

Runnable接口只定义了一个run()方法,所以调用start和sleep()方法时,必须创建Thread实例化对象。

Interrupt()方法的作用是中断线程。

其作用方式是:多线程对象.interrupt()。

2、具体要求(包括技术要求等):系统的功能要求:1.可以记录时间的钟表。

2.熟悉JAVA中swing的组件运用,基本工具的熟练掌握。

学习并掌握以下技术:Java等。

熟练使用以下开发工具:JCreator + JDK 1.6.0_02 等实现系统上述的功能。

3、进度安排:12月28日~ 12月29日:课程设计选题,查找参考资料12月29日~ 1月2日:完成程序代码的编写1月2日~ 1月3日:系统测试与完善1月4日~ 1月5日:完成课程设计报告,准备答辩4、主要参考文献[1]张帆.Java范例开发大全[M].北京:清华大学出版社,2010:0-831.[2]耿祥义,张跃平.Java大学实用教程[M].北京电子工业出版社,2008:213-216摘要随着经济全球化的发展,推动生活节奏的加快,也给时间赋予了更重要的意义。

基于方便人们更好的掌握时间,我们小组设计出了这个小时钟。

本时钟是一个基于Java语言设计而成的一个小程序,目的是显示时间,并且能调准时钟。

整个程序从符合操作简便、界面友好、灵活使用的要求出发,完成调用、调整的全过程。

本课程设计报告介绍了时钟的构成,论述了目标功能模块;给出了时钟设计的步骤,程序主要所用到的Swing组件以及graphics方法。

关键词:时钟,目录摘要 (II)目录 ......................................................................................................................................................... I II 第1章引言 .. (1)1.1课程设计内容 (1)1.2任务分工 (1)第2章时钟的设计 (2)2.1时钟功能的概述 (2)2.1.1时钟数字显示 (2)2.1.2时钟指针显示 (2)2.1.2时钟的设置 (2)第3章时钟的具体实现 (3)3.1界面设计 (3)3.1.1程序流程图 (3)3.1.1显示数字时钟效果 (3)3.1.2显示指针时钟完全效果图 (4)3.1.3设置窗口效果图 (6)第4章结束语 (8)致谢 (8)附录源代码 (9)第1章引言1.1课程设计内容本时钟编写时用到了Java中的Swing组件以及graphics方法,并具有下列处理功能(1)显示时钟功能显示钟表时间和数字时间(2)状态的可切换通过调整框图的大小,可以在数字时钟和指针时钟之间进行切换。

JavaFX实现简易时钟效果

JavaFX实现简易时钟效果

JavaFX实现简易时钟效果本⽂实例为⼤家分享了JavaFX实现简易时钟效果的具体代码,供⼤家参考,具体内容如下⾸先要在⾯板中显⽰⼀个时钟,我们可以设计⼀个ClockPane类来显⽰⼀个时钟。

最终效果:若要绘制⼀个时钟,需要绘制⼀个圆并为秒钟、分钟和⼩时绘制三个指针。

为了画⼀个指针,需要确定⼀条直线的两端:⼀端是时钟的中央,位于(centerX,centerY);另外⼀端位于(endX,endY),由⼀下公式来确定:endX=centerX+handLength×sin(θ) endY=centerY-handLength×cos(θ)(其中θ是指针和竖直⽅向12点的夹⾓)因为⼀分钟有60秒,所以第2个指针的⾓度是:second×(2π/60)分钟的位置由分钟和秒钟来决定。

包含秒数的确切分钟数是minu+second/60。

例如,如时间是3分30秒,那么总的分钟数就是3.5。

由于⼀⼩时有60分钟,因此分针的⾓度是: (minute+second/60)×(2π/12)由于⼀个圆被分为12个⼩时,所以时针的⾓度是: (hour+minute/60+second/(60×60))×(2π/12)为了简化计算,在计算分针和时针⾓度的时候,可以忽略秒针,因为它们数字太⼩,基本可以忽略。

因此,秒针、分针以及时针的端点可以如下计算:secondX = centerX + secondHandLength × sin(second × (2π/60))secondY = centerY - secondHandLength × cos(second × (2π/60))minuteX = centerX + minuteHandLength × sin(minute × (2π/60))minuteY = centerY - minuteHandLength × cos(minute × (2π/60))hourX = centerX + hourHandLength × sin((hour+minute/60) × (2π/12))hourX = centerX + hourHandLength × sin((hour+minute/60) × (2π/12))这样就得到了ClockPane类的实现程序:package pany;import yout.Pane;import javafx.scene.paint.Color;import javafx.scene.shape.Circle;import javafx.scene.shape.Line;import javafx.scene.text.Text;import java.util.Calendar;import java.util.GregorianCalendar;public class ClockPane extends Pane{private int hour;private int minute;private int second;private double w=250,h=250;public ClockPane() {setCurrentTime();}public ClockPane(int hour,int minute,int second) {this.hour=hour;this.minute=minute;this.second=second;paintClock();}public int getHour() {return hour;}public void setHour(int hour) {this.hour=hour;paintClock();}public int getMinute() {return minute;}public void setMinute(int minute) {this.minute=minute;paintClock();}public int getSecond() {return second;}public void setSecond(int second) {this.second=second;paintClock();}public double getW() {return w;}public void setW(double w) {this.w=w;paintClock();}public double getH() {return h;}public void setH(double h) {this.h=h;paintClock();}public void setCurrentTime() {Calendar calendar=new GregorianCalendar();this.hour=calendar.get(Calendar.HOUR_OF_DAY);this.minute=calendar.get(Calendar.MINUTE);this.second=calendar.get(Calendar.SECOND);paintClock();}protected void paintClock() {double clockRadius=Math.min(w,h)*0.8*0.5;double centerX=w/2;double centerY=h/2;Circle circle=new Circle(centerX,centerY,clockRadius);circle.setFill(Color.WHITE);circle.setStroke(Color.BLACK);Text t1=new Text(centerX-5,centerY-clockRadius+12,"12");Text t2=new Text(centerX-clockRadius+3,centerY+5,"9");Text t3=new Text(centerX+clockRadius-10,centerY+3,"3");Text t4=new Text(centerX-3,centerY+clockRadius-3,"6");double sLength=clockRadius*0.8;double scondX=centerX+sLength*Math.sin(second*(2*Math.PI/60)); double scondY=centerY-sLength*Math.cos(second*(2*Math.PI/60)); Line sline=new Line(centerX,centerY,scondX,scondY);sline.setStroke(Color.RED);double mLength=clockRadius*0.65;double minuteX=centerX+mLength*Math.sin(minute*(2*Math.PI/60)); double minuteY=centerY-mLength*Math.cos(minute*(2*Math.PI)/60); Line mline=new Line(centerX,centerY,minuteX,minuteY);mline.setStroke(Color.BLUE);double hLength=clockRadius*0.5;double hourX=centerX+hLength*Math.sin((hour%12+minute/60.0)*(2*Math.PI/12));double hourY=centerY-hLength*Math.cos((hour%12+minute/60)*(2*Math.PI/12));Line hline=new Line(centerX,centerY,hourX,hourY);hline.setStroke(Color.GREEN);getChildren().clear();getChildren().addAll(circle,t1,t2,t3,t4,sline,mline,hline);}}对程序的简要解读:①Java API的GregorianCalendar类可以使⽤它的⽆参构造⽅法来商城⼀个具有当前时间的Calendar实例。

JAVA实验报告一(运用JavaFx画时钟)-推荐下载

JAVA实验报告一(运用JavaFx画时钟)-推荐下载

一 概述
1. 课程设计的目的 1、 设计一个带有指针、数字时钟,能方便我们的使用和操作,
为我们以后的使用创造一个良好的平台。了解和掌握 JavaFx
基本概念和用法。
2、 把自己所学的理论知识运用到实际操作中去,以此来发现自
己的不足,及时的改正。在实际的操作中学习及运用还没有
学过的知识。最后在调试与测试的过程还可以提升自己的改
错能力也是自己经验的积累。
2. 课程设计的要求
编写一个模拟时钟程序,此程序在屏幕左方有一指针式钟面,右方有两个 矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致, 下方的矩形框作为秒表。用菜单选项或按钮设置时间和秒表。时间不必与机器 系统时间相同,只要可任意设置即可。
在设计的过程中,需要用到 awt 组件和 Swing 容器与组件,布局管理器, 事件处理,绘制图形,还运用到了类的继承,事件监听器和线程。还有自己还 没有掌握的 2D 绘制图形,以及绘制各指针及之间的关系。为了完成自己的设 计,必须 API、教材以及相关的资料来解决这些尚未掌握的问题。
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置2试时32卷,3各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并25工且52作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

实验二 运用JavaFx实现时钟动画

实验二 运用JavaFx实现时钟动画

中南大学Java实验报告学生姓名学生学号题目实验二运用JavaFx实现时钟动画专业班级完成时间 2014年12月16日目录1.问题描述 (3)一、实验目的 (3)二、实验开发环境和工具 (3)三、实验内容 (3)2.设计简要描述 (4)3.程序清单 (5)4.结果分析 (9)5.调试报告 (11)实验二运用JavaFx实现时钟动画1.问题描述一、实验目的1.了解和掌握JavaFx动画基本概念和相关用法二、实验开发环境和工具可以在Linux或者Windows操作系统上搭建开发环境,可使用集成开发环境Eclipse,使用Java语言,工具包使用JDK1.8。

三、实验内容基于JavaFx画出如下所示可动态变化的时钟。

要求按‘start’按钮可启动时钟,按‘stop’按钮可让时钟暂停。

时钟初始时显示当前时间并开始动态变化。

2.设计简要描述1.class clock extends Pane用clock类继承Pane类,内有clock和paint两个函数,这是用来画时钟的,并且定义了变量Line line_second,line_minute,line_hour (秒针,分针,时针)、以及c_second,c_minute,c_hour(秒、分、时分别指向的时间)。

比起实验一,还增加了按钮Start和Stop的功能,相应的也添加了两个功能函数。

另,增加了隔一秒就变化一次的动画,使时钟能够动起来。

2.public void start此函数用来建立界面,加上了标题SmartClock。

3.public static void main主函数。

4.程序清单package时钟;import java.util.*;import javafx.animation.KeyFrame;import javafx.animation.Timeline;import javafx.application.Application;import javafx.event.ActionEvent;import javafx.event.EventHandler;import javafx.scene.Scene;import javafx.scene.control.Button;import yout.HBox;import yout.Pane;import javafx.scene.paint.Color;import javafx.scene.shape.Circle;import javafx.scene.shape.Line;import javafx.scene.text.Text;import javafx.stage.Stage;import javafx.util.Duration;public class SmartClock extends Application {class clock extends Pane {private Timeline timeline;private Button Start,Stop;private Line line_second,line_minute,line_hour;private double c_second,c_minute,c_hour;public clock(){HBox hbox=new HBox();hbox.setSpacing(20);hbox.setLayoutX(310);hbox.setLayoutY(520);Start = new Button("Start");Start.setPrefSize(80, 40);Stop = new Button("Stop");Stop.setPrefSize(80, 40);hbox.getChildren().addAll(Start,Stop);getChildren().add(hbox);Start.setOnAction(new EventHandler<ActionEvent>() {public void handle(ActionEvent e) {System.out.println("Start button clicked");timeline.play();}});Stop.setOnAction(new EventHandler<ActionEvent>() {public void handle(ActionEvent e) {System.out.println("Stop button clicked");timeline.stop();}});Circle circle= new Circle(400,300,200, Color.web("white", 0));circle.setStroke(Color.web("black", 1));getChildren().add(circle);for (int i = 0; i < 60; i++) {Line line = newLine(400+200*Math.sin(Math.PI*i/30),(300-200*Math.cos(Math.PI*i/30)),40 0+190*Math.sin(Math.PI*i/30),(300-190*Math.cos(Math.PI*i/30)));getChildren().add(line);}for (int i = 0,j = 0; i < 60; i=i+5,j++) {String[]n={"12","1","2","3","4","5","6","7","8","9","10","11"};Line line = newLine(400+200*Math.sin(Math.PI*i/30),(300-200*Math.cos(Math.PI*i/30)),40 0+180*Math.sin(Math.PI*i/30),(300-180*Math.cos(Math.PI*i/30)));getChildren().add(line);Text text = newText(395+170*Math.sin(Math.PI*i/30),(300-170*Math.cos(Math.PI*i/30)),n[ j]);getChildren().add(text);}line_second = new Line();line_minute = new Line();line_hour = new Line();paint();getChildren().addAll(line_second,line_minute,line_hour);timeline = new Timeline();timeline.setCycleCount(Timeline.INDEFINITE);Duration duration = lis(1000);KeyFrame keyFrame = new KeyFrame(duration, newEventHandler<ActionEvent>() {public void handle(ActionEvent event) {paint();}});timeline.getKeyFrames().add(keyFrame);timeline.play();}public void paint(){Calendar c = Calendar.getInstance();//取当前时间c_second=c.get(Calendar.SECOND);c_minute=c.get(Calendar.MINUTE);c_hour=c.get(Calendar.HOUR)*5;line_second.setStartX(400);line_second.setStartY(300);line_second.setEndX(400+160*Math.sin(Math.PI*c_second/30));line_second.setEndY(300-160*Math.cos(Math.PI*c_second/30));line_second.setStroke(Color.RED);line_minute.setStartX(400);line_minute.setStartY(300);line_minute.setEndX(400+120*Math.sin(Math.PI*c_minute/30));line_minute.setEndY(300-120*Math.cos(Math.PI*c_minute/30));line_minute.setStroke(Color.BLUE);line_hour.setStartX(400);line_hour.setStartY(300);line_hour.setEndX(400+80*Math.sin(Math.PI*c_hour/30));line_hour.setEndY(300-80*Math.cos(Math.PI*c_hour/30));line_hour.setStroke(Color.GREEN);}}public void start(Stage stage) {clock pane=new clock();Scene scene = new Scene(pane,800,600);stage.setTitle("Smart Clock");stage.setScene(scene);stage.show();}public static void main(String[] args) {launch(args);}}4.结果分析如图,这是和系统时间一致的虚拟时钟,有时、分、秒的显示。

动态旋转时钟

动态旋转时钟
角给充固定区域填充颜色,然后用g.drawString() 把动态拼出来
的时间画上去;
d.先擦除秒针,用drawLine()把上一秒的指 针填充为背景色,获取下一秒的位置再drawLine() 上;(分针和时针)


3 程序解析
创建构造方法与监听事件


3 程序解析
利用Graphics2D画圆,g.fillOval(5, 10, 400, 400):画圆的工具,指 定 。 容 器 必 须
3.repaint()方法,new一个定时器,每隔1 秒调用ActionListener实例,重画一次;

2|Leabharlann java动态旋转时钟 编写过程
3.写paint(Graphics g)方法, a.用g.drawOval();方法画圆; b.用g.drawString();方法绘制表盘上1~12的
数字,定位用Math.sin()、Math.cos(); c.用g.setColor(),g.fillRect()在窗体左上
java动态 旋转时钟
1
继承窗口,设置窗口的元素,添加组件
2
创建监听事件,创建时间计数器

设计思想

3 实现ActionListener接口,利用2D绘制图形的方
法绘制圆
4
绘制时钟上的数字,然后利用Calendar类提供的方 法获得现在的时间计算时间和度数的关系
5 在利用2D绘制图形的方法绘制出各指针
java动态旋转时钟设计思想继承窗口设置窗口的元素添加组件创建监听事件创建时间计数器实现actionlistener接口利用2d绘制图形的方法绘制圆123设计思想法绘制圆绘制时钟上的数字然后利用calendar类提供的方法获得现在的时间计算时间和度数的关系54在利用2d绘制图形的方法绘制出各指针编写过程1

java闹钟程序设计

java闹钟程序设计

j a v a闹钟程序设计------------------------------------------作者xxxx------------------------------------------日期xxxx《JAVA程序设计》课程设计报告班级软件1301班姓名徐畅学号13号电子邮件849286847@指导教师张暑军时间2014/2015学年第一学期第20周承德石油高等专科学校计算机与信息工程系二零一五年一月十二日目录一系统需求描述 (4)二设计思路 (4)三实现描述 (6)四常见问题及解决方法 (8)五总结 (8)一系统需求描述1.任务描述:我国现在在各个方面发展迅猛,民众的生活质量得到极大的提高。

与此同时,根据时代的要求,人们的生活节奏也随之加快。

人们都要求自己在很短的时间尽量做到最多的事。

所以开发一款能让人们能将其所有的事有序地组织起来,同时又能提醒在什么时间该做什么事的软件是很有必要的。

虽然目前这样软件很多功能虽强大,但是用起来都很复杂,有些功能并不实用,操作也太麻烦。

该课题的终极目标是开发一个实用,操作便捷的桌面闹钟应用程序,达到在日常生活工作中可以合理利用时间从而大大地提高人们的工作效率。

用java 语言实现时钟闹钟的设计,设计的时钟闹铃能够完成以下功能:正确的指针位置、日期、时间的数字显示;在设定的时间用铃声提醒,若当前时间为设置的时间时,会伴随着铃声,时间持续约1分钟。

若关闭闹铃,则铃声停止。

2.需求分析:(1)该闹铃系统可用于到时响铃功能(可设置多组闹铃);(2)该闹铃系统只需要用户给其设置闹铃时间;(3)该闹铃系统与用户的交互完全靠按键实现;(4)该闹铃系统界面在外观上要求美观。

其中最重要的是闹铃的可操作性强,能够完成必要的功能;(5)该闹铃系统的相应时间0.1秒左右。

(6)该闹铃系统出现故障时,重启系统即可。

二设计思路1.实验目的:通过时钟闹铃的设计和实现,充分掌握java语言,提高对图形界面及小程序的设计和编程能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JA V A实验报告实验二运用JavaFx实现时钟动画班级:计算机科学与技术1306学号:***********名:***指导教师:***2014 年12 月 1 日目录一.概述 (3)二.总体方案设计 (4)三.详细设计 (4)四.程序的调试与运行结果说明 (5)五.课程设计总结 (7)六.后记 (7)七.附录 (7)参考文献 (9)一概述1.课程设计的目的设计一个带有指针、数字时钟,并且具有秒表功能,能方便我们的使用和操作,为我们以后的使用创造一个良好的平台。

了解和掌握JavaFx基本概念和用法。

把自己所学的理论知识运用到实际操作中去,以此来发现自己的不足,及时的改正。

在实际的操作中学习及运用还没有学过的知识。

最后在调试与测试的过程还可以提升自己的改错能力也是自己经验的积累。

java课程具有比较强的实践性。

上机实验是一个重要的教学环节。

一般情况下学生能够重视实验环节,对于编写程序上机练习具有一定的积极性。

但是容易忽略实验的总结,忽略实验报告的撰写。

对于一名大学生必须严格训练分析总结能力、书面表达能力。

需要逐步培养书写科学实验报告以及科技论文的能力。

拿到一个题目,一般不要急于编程。

正确的方法是:首先理解问题,明确给定的条件和要求解决的问题,然后按照自顶向下,逐步求精,分而治之的策略,按照面向对象的程序设计思路,逐一地解决子问题。

2.课程设计的要求基于JavaFx画出如下所示可动态变化的时钟。

要求按‘start’按钮可启动时钟,按‘stop’按钮可让时钟暂停。

时钟初始时显示当前时间并开始动态变化。

在设计的过程中,需要用到awt组件和Swing容器与组件,布局管理器,事件处理,绘制图形,还运用到了类的继承,事件监听器和线程。

还有自己还没有掌握的2D绘制图形,以及绘制各指针及之间的关系。

为了完成自己的设计,必须API、教材以及相关的资料来解决这些尚未掌握的问题。

在实验一的图形基础上,再设置两个按钮,分别为“Start”和“Stop”按钮,控制时钟的运动和暂停,再通过事件函数来监听事件从而改变事件。

时钟动画用Timeline类来实现,用KeyFrame类来执行指针变化的函数。

老师的要求就是尽量实现设计的功能,尽可能的锻炼自己的动手能力,提高自己的基础知识。

3.课程设计的主要设计思想先是利用构造函数创建一个长为500,宽为200的窗体,颜色设置为black,并把窗体设计为固定大小,并且创建一个监听事件进行监听。

随即创建一个时间计数器,最后实现ActionListener接口的实现方法。

利用2D绘制图形的方法,在窗体左方画一个圆,并且绘制时钟上的12个数字刻度,然后利用Calendar类提供的HOUR,MINUTE,SECOND和MILLISECOND方法获得现在的时间,在计算时间和度数的关系;在利用2D绘制图形的方法绘制出各指针,并设置不同的颜色。

在利用drawString在窗体的右上方画出一个小的框并在里面现在和时钟相对数字时间;然后根据相同的方法在数字时间下面显示秒表功能。

二总体方案设计1、编写一个模拟时钟程序,此程序在屏幕左方有一指针式钟面。

2、右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致。

3、在数字时间下方的矩形框作为秒表4、用菜单选项或按钮设置时间和秒表,时间不必与机器系统时间相同,只要可任意设置即可整体框图三详细设计1、先是利用构造函数创建一个窗体,颜色设置为初始态,并把窗体设计为固定大小,并且创建一个监听事件进行监听。

随即创建一个时间计数器,最后实现ActionListener接口的实现方法。

2、利用2D绘制图形的方法,在窗体左方画一个圆,并且绘制时钟上的12个小时刻度和60个分钟刻度。

3、然后利用Calendar类提供的HOUR,MINUTE,SECOND和MILLISECOND方法获得现在的时间,在计算时间和度数的关系;在利用2D绘制图形的方法绘制出各指针,并设置不同的颜色。

4、在编写主函数,在运行程序所完成的具体功能及用到的算法(详细分析)。

程序流程图主要部分的详细流程图四程序的调试与运行结果说明调试的方法:首先我是一个类一个类的完成,在每一个类完成后都会对它进行编译,待它能正常的编译之后在进行下面的类的编写。

在编译的过程中会有一些错误,比如说语法错误,类的引用格式不正确,会产生一些异常。

但是在经过慢慢的调试,这些问题逐渐得到解决。

功能:显示实时时间并且可以用开始和暂停控制。

运行结果:开始运行时,为当前时间运行后,点击暂停,停止转动重新点击开始,继续运行五课程设计总结对于课程设计,基本上实现了模拟时钟程序的要求。

该设计时钟上标有12个小时刻度,60个分钟刻度。

并且各指针是不同的颜色,看上去比较美观。

设有开始、暂停的按钮,按‘start’按钮可启动时钟,按‘stop’按钮可让时钟暂停。

时钟初始时显示当前时间并开始动态变化。

我想在不断地进行对该设计的完善,不仅能为该时钟设置背景,以增加该时钟的美观效果,也可以对时钟到了一定的时间就可以报时,并且可以设置闹钟,为闹钟设置多种音乐,可供选择,这样的话就不显得单调,这样一来该时钟更方便实用。

困难及解决途径在上机实习完成课程设计的过程中,遇到了不少的问题,一是有一些东西自己没有学过,而是在编写的过程中由于思路不清晰以及自己的粗心给自己制造了一些麻烦,还有就是会产生一些异常。

但是在经过自己和老师、同学的交流,以及自己查阅资料和API文档,针对性的对不懂得问题进行查询,自己没有学过但是又要用到得逐渐的得到解决,再经过自己反复的理清思路和反复的检查由思路不清晰和粗心带来的麻烦也慢慢得到了解决。

六后记首先,java作为一种计算机语言,它具备语言的特性,就是我们在课堂上认真听取了老师的指导之后,还得自己回去认真看书写程序,并且上机实习才能发现问题及时解决问题。

就像我们学习语言一样要通过和同学之间的交流才能提高我们的实际应用能力。

所以,我们在自己认真刻苦学习的同时,一定要多和同学老师交流,从他们那里吸取好的思维方式、好的学习方法。

在上机实习的时候,我现在回顾自己一学期的学习,觉得首先应该熟悉java 的概念,明白程序开发的基本思想,熟悉开发环境之后马上进行自主学习,自己学习的步伐千万不能落于老师讲课授课的速度。

如果这样的话,我们很可能处于一种被动学习的劣势,失去对java学习的热情,以至于恶性循环,到最终的无可救药。

在平时的训练和刚刚结束的上机实习中我深刻的体会到了学习好java我们就要一定要掌握好java的基本语句,包括条件语句和循环语句。

这些就是我们编写程序这棵大树的必要组成枝叶。

建立起关键语句的之后,我们才能有更强的功能和实用性。

Java作为一个面向对象的编程语言,在图像方面具有很强的实现能力。

这样很能激发我们的学习兴趣。

在编写程序的时候发现,虽然它是一个面向对象的编程语言,我们一定要学会如何编写多个类和方法,在不断地摸索中培养我们自身设计面向对象解决方案的能力。

作为学生的我们,是一个学习的过程,我们应该学习如何写好程序。

而好的程序不仅仅是一系列语句的拼凑,我们要联系自身实际,用编程语言解决问题和实施解决问题的方案。

在学习java的这一段时间当中,图形激发了我学习的巨大热情。

所以,我觉得我自己一定要在打好坚实的基础的情况下,对图形学进行认真学习。

在学习图形和图形用户接口的时候,觉得变得吃力起来。

因为随着课程的加重,发现自己动手能力越来越若,在事件处理和图形用户接口的使用中,出现了知识点模棱两可的情况。

当然,任何的困难挫折在不断地努力中都会变得脆弱,只是暂时的阴影。

最后我想说不会写java程序不要紧,多在网上找资料和文章学习,多看看程序员的博客、与导师沟通学习,总会找到你需要的材料,书山有路勤为径,学海无涯苦作舟。

在以后的日子里,我要不断地学习这个博大精深的语言,继续不断的深化自己的实际动手能力。

七附录package clock2;import java.awt.*;import java.awt.event.*;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.Timer;import java.awt.geom.*;import java.util.*;class Clock extends Canvasimplements ActionListener{static JButton jb=new JButton("start");static JButton jb1=new JButton("stop");Date date;Timer secondTime;int hour,munite,second;Line2D secondLine,muniteLine,hourLine;int a,b,c;double pointSX[]=new double[60],//用来表示秒针端点坐标的数组pointSY[]=new double[60],pointMX[]=new double[60], //用来表示分针端点坐标的数组pointMY[]=new double[60],pointHX[]=new double[60], //用来表示时针端点坐标的数组pointHY[]=new double[60];Clock(){ secondTime=new Timer(1000,this);pointSX[0]=0; //12点秒针位置pointSY[0]=-100;pointMX[0]=0; //12点分针位置pointMY[0]=-90;pointHX[0]=0; //12点时针位置pointHY[0]=-70;double angle=6*Math.PI/180; //刻度为6度for(int i=0;i<59;i++) //计算出各个数组中的坐标{ pointSX[i+1]=pointSX[i]*Math.cos(angle)-Math.sin(angle)*pointSY[i];pointSY[i+1]=pointSY[i]*Math.cos(angle)+pointSX[i]*Math.sin(angle);pointMX[i+1]=pointMX[i]*Math.cos(angle)-Math.sin(angle)*pointMY[i];pointMY[i+1]=pointMY[i]*Math.cos(angle)+pointMX[i]*Math.sin(angle);pointHX[i+1]=pointHX[i]*Math.cos(angle)-Math.sin(angle)*pointHY[i];pointHY[i+1]=pointHY[i]*Math.cos(angle)+pointHX[i]*Math.sin(angle); }for(int i=0;i<60;i++){ pointSX[i]=pointSX[i]+120; //坐标平移pointSY[i]=pointSY[i]+120;pointMX[i]=pointMX[i]+120; //坐标平移pointMY[i]=pointMY[i]+120;pointHX[i]=pointHX[i]+120; //坐标平移pointHY[i]=pointHY[i]+120;}secondLine=new Line2D.Double(0,0,0,0);muniteLine=new Line2D.Double(0,0,0,0);hourLine=new Line2D.Double(0,0,0,0);secondTime.start(); //秒针开始计时}public void paint(Graphics g){ for(int i=0;i<60;i++) //绘制表盘上的小刻度和大刻度{ int m=(int)pointSX[i];int n=(int)pointSY[i];if(i%5==0){ g.setColor(Color.black);g.fillOval(m-4,n-4,8,8);}else{ g.setColor(Color.black);g.fillOval(m-2,n-2,4,4);}}g.fillOval(115,115,10,10); //钟表中心的实心圆Graphics2D g_2d=(Graphics2D)g;g_2d.setColor(Color.black);g.drawOval(20,20,200,200);g_2d.draw(secondLine);BasicStroke bs=new BasicStroke(3f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_MITER);g_2d.setStroke(bs);g_2d.setColor(Color.pink);g_2d.draw(muniteLine);bs=new BasicStroke(6f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER);g_2d.setStroke(bs);g_2d.setColor(Color.cyan);g_2d.draw(hourLine);}public void actionPerformed(ActionEvent e){ if(e.getSource()==secondTime){date=new Date();String s=date.toString();hour=Integer.parseInt(s.substring(11,13));munite=Integer.parseInt(s.substring(14,16));second=Integer.parseInt(s.substring(17,19)); //获取时间中的秒int h=hour%12;a=second; //秒针端点的坐标b=munite; //分针端点的坐标c=h*5+munite/12; //时针端点的坐标secondLine.setLine(120,120,(int)pointSX[a],(int)pointSY[a]);muniteLine.setLine(120,120,(int)pointMX[b],(int)pointMY[b]);hourLine.setLine(120,120,(int)pointHX[c],(int)pointHY[c]);repaint();} if(e.getSource()==jb){secondTime.start();}if(e.getSource()==jb1){secondTime.stop();}}public static void main(String args[]){JFrame win=new JFrame("clock");JPanel jp=new JPanel();jp.add(jb);jp.add(jb1);Clock clock=new Clock();jb.addActionListener(clock);jb1.addActionListener(clock);win.add(clock,BorderLayout.CENTER);win.add(jp,"South");win.setVisible(true);win.setSize(246,300);win.setDefaultCloseOperation(3) ;win.validate();}}参考文献[1] Java语言程序设计郭克华段桂华清华大学出版社。

相关文档
最新文档