实验一 运用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 页

本文来源:https://www.bwwdw.com/article/mc0r.html

Top