javafx实现时钟效果

这篇文章主要为大家详细介绍了javafx实现时钟效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了javafx实现时钟效果的具体代码,供大家参考,具体内容如下

核心为三个函数:

第一个为 public void dials,绘制表盘

第二个为 public void scale,绘制刻度,这里需要注意的是字体旋转

第三个为 public void point,绘制秒分时针以及打印时间,需要注意的是进制问题

总的源码如下:

 package com.wu.demo; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import javafx.animation.KeyFrame; import javafx.animation.Timeline; import javafx.application.Application; import javafx.collections.ObservableList; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.layout.AnchorPane; import javafx.scene.paint.Color; import javafx.scene.paint.Paint; import javafx.scene.text.Font; import javafx.stage.Stage; import javafx.util.Duration; public class view extends Application{ @Override public void start(Stage stage) throws Exception{ AnchorPane root = new AnchorPane(); Canvas canvas = new Canvas(800,650); root.getChildren().add(canvas); Scene scene = new Scene(root,800,650); stage.setScene(scene); stage.setResizable(false); stage.show(); // 获取画板对象 GraphicsContext gc = canvas.getGraphicsContext2D(); // 创建时间轴 Timeline timeLine = new Timeline(); // 获取时间轴的帧列表 ObservableList keyFrames = timeLine.getKeyFrames(); // 添加关键帧 keyFrames.add(new KeyFrame(Duration.seconds(0.1),e->{ // 刷新操作 gc.clearRect(0,0,800,650); // 绘制表盘 dials(gc); // 绘制刻度 scale(gc); // 绘制指针 point(gc); })); // 设置时间轴播放次数为无限 timeLine.setCycleCount(-1); // 播放时间轴 timeLine.play(); } /** * 绘制表盘 * @param gc */ public void dials(GraphicsContext gc) { // 保存现场 gc.save(); // 变换坐标到外切圆矩形左上角坐标 gc.translate(100,25); gc.setLineWidth(8); gc.setStroke(Color.GRAY); gc.strokeOval(0, 0, 600, 600); gc.restore(); } /** * 绘制刻度 * @param gc */ public void scale(GraphicsContext gc) { // 保存现场 gc.save(); // 变换坐标系原点到表盘中心 gc.translate(400,325); // 坐标逆时针旋转角度-90 gc.rotate(-90); // 设置字体大小 gc.setFont(Font.font(20)); for(int i = 1 ; i <61 ; i++) {>


效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持html中文网。

以上就是javafx实现时钟效果的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java