效果图
用当前时间创建时钟,绘制表盘。
钟表是静止的。让指针动起来,请参照:绘制简易时钟(二)

主函数文件 ShowClock:

package primier; import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.paint.Color;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.shape.Line;public class ShowClock extends Application {@Override //Override the start method in the Application classpublic void start(Stage primaryStage) {// 创建时钟面板ClockPane clock = new ClockPane();// 当前时间整理为字符串String timeString = clock.getHour() + ":" + clock.getMinute()+ ":" + clock.getSecond();Label lbCurrentTime = new Label(timeString);BorderPane pane = new BorderPane();pane.setCenter(clock);pane.setBottom(lbCurrentTime);// 将时钟字符串设为靠上居中BorderPane.setAlignment(lbCurrentTime, Pos.TOP_CENTER);Scene scene = new Scene(pane, 250,250);primaryStage.setTitle("Display Clock");primaryStage.setScene(scene);primaryStage.show();}public static void main (String[] args) {Application.launch(args);}
}

ClockPane 类

package primier;import java.util.Calendar;
import java.util.GregorianCalendar;
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;public class ClockPane extends Pane {private int hour;private int minute;private int second;// 时钟面板的宽度和高度private double w = 250, h = 250;/** 用当前时间创建时钟 */public ClockPane() {setCurrentTime();}/** Return hour */public int getHour() { return hour; }/** Return minute */public int getMinute() { return minute; }/** Return second */public int getSecond() { return second; }/** Set the current time for the clock */public void setCurrentTime() {// 用当前时间创建Calendar类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.4; // 时钟半径// 时钟中心x, y坐标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 secondX = centerX + sLength * Math.sin(second * (2 * Math.PI / 60));double secondY = centerY - sLength * Math.cos(second * (2 * Math.PI / 60));Line sLine = new Line(centerX, centerY, secondX, secondY);sLine.setStroke(Color.GRAY);// 分针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.0) * (2 * Math.PI / 12));Line hLine = new Line(centerX, centerY, hourX, hourY);sLine.setStroke(Color.GREEN);// 将之前的结点清空,绘制新创建的结点getChildren().clear();getChildren().addAll(circle, t1, t2, t3, t4, sLine, mLine, hLine);}
}

[JavaFX] 绘制简易时钟(一)相关推荐

  1. java中有ClockPane类吗,JavaFX实现简易时钟效果(二)

    本文实例为大家分享了JavaFX实现简易时钟效果的具体代码,供大家参考,具体内容如下 在前一篇博客中,我们已经绘制了一个静止时钟. 首先进行一个微调:让表盘根据窗口大小自动调整大小: 在 ShowCl ...

  2. java 简易的闹钟设计_JavaFX实现简易时钟效果

    本文实例为大家分享了JavaFX实现简易时钟效果的具体代码,供大家参考,具体内容如下 首先要在面板中显示一个时钟,我们可以设计一个ClockPane类来显示一个时钟. 最终效果: 若要绘制一个时钟,需 ...

  3. java 简单时钟界面_JavaFX实现简易时钟效果(一)

    本文实例为大家分享了javafx实现简易时钟效果的具体代码,供大家参考,具体内容如下 效果图 用当前时间创建时钟,绘制表盘. 钟表是静止的.让指针动起来,请参照: 主函数文件 showclock: p ...

  4. C#自定义控件四简易时钟

    C#自定义控件四简易时钟 效果图: 简易时钟,顾名思义,简单容易,简单到什么程度呢?界面只有数字和指针,甚至连与当前时间都不能匹配!呵呵!就这么简单,学习嘛,从简单开始. 毫无疑问,这里肯定要用到Ti ...

  5. python怎么画简单图片-Python绘制简易的二维图像

    大家好,我是飞向天空的牛. 最近学习了一下用Python绘制简易的二维图像,代码如下图所示:绘图代码 文本如下: import matplotlib.pyplot as plt import nump ...

  6. 使用canvas绘制动画时钟

    一代码 <!DOCTYPE html > <head> <meta charset="UTF-8" ><title>绘制动态时钟&l ...

  7. python动态时钟代码_python绘制动态时钟

    桌面时钟项目描述 1.使用turtle库绘制时钟外形及表针: 2.使用datetime获取系统时间: 3.时钟动态显示 turtle库基本命令 1.turtle.setup()函数:用于启动一个图形窗 ...

  8. android canvas 画按钮,Android 用Canvas轻松绘制一个时钟

    接下来这篇文章主要是结束如何轻松自定义一个View并使用Canvas绘制一个时钟的案例,话不多说先上图瞅瞅,一共实现了两种效果,一种是秒动(秒针一秒走一针).另一种是连动式的,秒针不会停会一直走动,话 ...

  9. python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟

    怎么在Python项目中利用Pygame绘制一个时钟 发布时间:2020-11-30 14:24:30 来源:亿速云 阅读:54 作者:Leah 怎么在Python项目中利用Pygame绘制一个时钟? ...

最新文章

  1. unicode编码过php的magic_quotes_gpc设置为on的mysql注入与文件写入(待测试)
  2. Fastq-dump:我的日常命令
  3. C++ 自己重写Vector
  4. lt;xliff:ggt;标签
  5. 三维空间两直线/线段最短距离、线段计算算法 【转】
  6. 部分 DNS 查询因闰秒 bug 报错
  7. 【机房收费系统】---组合查询
  8. 手机端仿ios的银行下拉脚本五
  9. CDN学习笔记二(技术详解)
  10. 打造最美HTML5 3D机房(第三季新增资产管理、动环监控)
  11. python写一个数字字典生成器
  12. Hadoop之hdfs操作
  13. 在你的项目中集成 Android pay支付
  14. 爬取链家网站的北京租房信息
  15. Access转出到Mysql,咱自己动手丰衣足食.. -- 纯JS代码
  16. 小学生信息与未来 2022 题解
  17. 汽车 Flexry总线-笔记
  18. 浅谈社交电商产品设计的10个深刻的知识
  19. vue实现星级评价及上传多张图片等功能(类似淘宝商品评价页面)
  20. 创业十年,静静地反思zz

热门文章

  1. CEF 之 CefDownloadHandler使用: 自定义下载路径、下载进度
  2. ubuntu /dev/nvme0n1p1分配内存很小100G /dev/nvme0n1p3分区很大300G
  3. 网络策略控制集群内部通信-networkpolicy
  4. 原型与原型链的个人理解
  5. 牛客网项目中的thymeleaf语法总结1
  6. PHP税前税后,php计算税后工资的方法
  7. JavaScript的案例:模拟聊天界面发送信息
  8. Java - Map keyset
  9. 【Web-View】小程序跳转外部链接
  10. RNN与LSTM系列(二)——LSTM的参数个数