实验一 运用JavaFx画时钟
更新时间:2024-03-27 19:05:01 阅读量: 综合文库 文档下载
- 实验一小推荐度:
- 相关推荐
中南大学
Java实验报告
学生姓名 学生学号
题 目 实验一 运用JavaFx画时钟 专业班级
完成时间 2014年12月16日
JAVA实验246738042_彭澍
目 录
1.问题描述 ....................................... 3
一、实验目的 .................................. 3 二、实验开发环境和工具 ........................ 3 三、实验内容 .................................. 3
2.设计简要描述 ................................... 4
3.程序清单 ....................................... 4
4.结果分析 ....................................... 7
5.调试报告 ....................................... 7
第 2 页 共 9 页
JAVA实验246738042_彭澍
实验一 运用JavaFx画时钟
1.问题描述
一、实验目的
1. 了解和掌握JavaFx基本概念和用法
二、实验开发环境和工具
可以在Linux或者Windows操作系统上搭建开发环境,可使用集成开发环境Eclipse,使用Java语言,工具包使用JDK1.8。
三、实验内容
基于JavaFx画出如下所示的时钟。
第 3 页 共 9 页
JAVA实验246738042_彭澍
2.设计简要描述
1. class clock extends Pane
用clock类继承Pane类,内有clock和paint两个函数,这是用来画时钟的,并且定义了变量Line line_second,line_minute,line_hour(秒针,分针,时针)、以及c_second,c_minute,c_hour(秒、分、时分别指向的时间)。
2. public void start
此函数用来建立界面。
3. public static void main
主函数。
4. 程序清单
package 时钟;
import java.util.*;
import javafx.animation.Timeline;
第 4 页 共 9 页
JAVA实验246738042_彭澍
import javafx.application.Application; import javafx.scene.Scene;
import javafx.scene.layout.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;
public class Clock extends Application{
class clock extends Pane {
private Timeline timeline;
private Line line_second,line_minute,line_hour;
private double c_second,c_minute,c_hour;
0));
public clock(){
Circle circle = new Circle(400,300,200, Color.web(\,
circle.setStroke(Color.web(\, 1)); getChildren().add(circle);
for (int i = 0; i < 60; i++) { Line line = new
Line(400+200*Math.sin(Math.PI*i/30),(300-200*Math.cos(Math.PI*i/30)),400+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={\,\,\,\,\,\,\,\,\,\,\,\};
Line line = new
Line(400+200*Math.sin(Math.PI*i/30),(300-200*Math.cos(Math.PI*i/30)),400+180*Math.sin(Math.PI*i/30),(300-180*Math.cos(Math.PI*i/30)));
getChildren().add(line);
Text text = new
Text(395+170*Math.sin(Math.PI*i/30),(300-170*Math.cos(Math.PI*i/30)),n[j]);
}
line_second = new Line();
第 5 页 共 9 页
getChildren().add(text);
JAVA实验246738042_彭澍
line_minute = new Line();
line_hour = new Line(); paint();
getChildren().addAll(line_second,line_minute,line_hour); timeline = new Timeline();
timeline.setCycleCount(Timeline.INDEFINITE); }
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.setScene(scene); stage.show();
}
public static void main(String[] args) { launch(args); }
第 6 页 共 9 页
JAVA实验246738042_彭澍
4.结果分析
如图,运行程序后可得到与系统时间相同的时钟界面。
对照系统时间可知,程序是正确的。
5.调试报告
对于模拟时钟的设计,基本上实现了模拟时钟程序的要求,在中央有一个白色背景的模拟时钟。设计的特点是时钟上标有12个小时的刻度,每个小时刻度之间还有4个小格用来显示分和秒,时针、分针、秒针是不同的颜色,看上去比较美观。
第 7 页 共 9 页
JAVA实验246738042_彭澍
在上机实习完成课程设计的过程中,遇到了不少的问题,一是有一些东西接触得不深,平时的练习不够,到了实践环节就有些手忙脚乱;二是在编写的过程中由于思路不清晰以及自己的粗心给自己制造了一些麻烦,还有就是会产生一些异常。但是在经过自己和老师、同学的交流,以及自己查阅资料和API文档,针对性的对不懂得问题进行查询,自己没有学过但是又要用到得逐渐的得到解决,再经过自己反复的理清思路和反复的检查由思路不清晰和粗心带来的麻烦也慢慢得到了解决。
我有以下几点感想:
首先,java作为一种计算机语言,它具备语言的特性,就是我们在课堂上认真听取了老师的指导之后,还得自己回去认真看书写程序,并且上机实习才能发现问题及时解决问题。就像我们学习语言一样要通过和同学之间的交流才能提高我们的实际应用能力。所以,我们在自己认真刻苦学习的同时,一定要多和同学老师交流,从他们那里吸取好的思维方式、好的学习方法。
在上机实习的时候,我现在回顾自己一学期的学习,觉得首先应该熟悉java的概念,明白程序开发的基本思想,熟悉开发环境之后马上进行自主学习,自己学习的步伐千万不能落于老师讲课授课的速度。如果这样的话,我们很可能处于一种被动学习的劣势,失去对java学习的热情,以至于恶性循环,到最终的无可救药。 在平时的训练和刚刚结束的上机实习中我深刻的体会到了学习好java我们就要一定要掌握好java的基本语句,包括条件语句和循环语句。这些就是我
第 8 页 共 9 页
JAVA实验246738042_彭澍
们编写程序这棵大树的必要组成枝叶。建立起关键语句的之后,我们才能有更强的功能和实用性。
Java作为一个面向对象的编程语言,在图像方面具有很强的实现能力。这样很能激发我们的学习兴趣。在编写程序的时候发现,虽然它是一个面向对象的编程语言,我们一定要学会如何编写多个类和方法,在不断地摸索中培养我们自身设计面向对象解决方案的能力。作为学生的我们,是一个学习的过程,我们应该学习如何写好程序。而好的程序不仅仅是一系列语句的拼凑,我们要联系自身实际,用编程语言解决问题和实施解决问题的方案。在学习java的这一段时间当中,图形激发了我学习的巨大热情。所以,我觉得我自己一定要在打好坚实的基础的情况下,对图形学进行认真学习。在学习图形和图形用户接口的时候,觉得变得吃力起来。因为随着课程的加重,发现自己动手能力越来越若,在事件处理和图形用户接口的使用中,出现了知识点模棱两可的情况。当然,任何的困难挫折在不断地努力中都会变得脆弱,只是暂时的阴影。在以后的日子里,我要不断地学习这个博大精深的语言,继续不断的深化自己的实际动手能力。
第 9 页 共 9 页
正在阅读:
实验一 运用JavaFx画时钟03-27
常见的关系型数据库管理系统05-13
高中生助学金申请书模板8篇04-03
渝价〔2011〕164号 11 重庆市物价局贯彻国家发展改革委关于适当调整电价有关问题的通知 - 图文10-05
会变魔术的雪作文400字06-21
二级C上机答案10-20
质量与密度测试题1(含答案)04-26
小学六年级数学上册单元练习题集0507-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 时钟
- 运用
- 实验
- JavaFx
- 领导科学与决策B孙萍
- 南京一汽丰田4S店前五名排行榜
- 谈外道的禅定(五台山比丘果戒)
- 八年级上册英语Unit10-Unit11单词
- 申请补、换发专业技术(执业)资格证书情况汇总表
- 关于进一步加强秋季学校食堂食品安全监管工作的通知
- 10052职业生涯规划与管理 - 自考大纲
- 2018-2024年中国青海省房地产市场深度分析与前景发展战略规划研
- 模联中英文对照词表
- 北京海淀区2018届九年级英语二模试题
- 21.残疾人体育 - 图文
- 国际金融作业2
- 药物毒理学考试重点以及习题 - 图文
- 中华人民共和国最高人民检察院公告
- gpsone手机GPS定位安防公司星控推介销售代理招标文件
- ISO27001信息密码口令管理规定
- 佛陀的最后遗教《大般涅盘经》略解(一)
- 《电切削工技能培训与鉴定》教学大纲精品资料
- 浅谈双关语的妙用
- 18秋学期《模拟电子技术基础》在线作业3