使用JavaFX如何实现一个时钟效果

  介绍

这篇文章将为大家详细讲解有关使用JavaFX如何实现一个时钟效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

具体内容如下

<>强效果图

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

使用JavaFX如何实现一个时钟效果

主函数文件ShowClock:

包最佳时期的;
  
  进口javafx.application.Application;
  进口javafx.geometry.Insets;
  进口javafx.geometry.Pos;
  进口javafx.scene.Scene;
  进口javafx.stage.Stage;
  进口javafx.scene.paint.Color;
  进口javafx.scene.layout。*;
  进口javafx.scene.control。*;
  进口javafx.scene.image.Image;
  进口javafx.scene.image.ImageView;
  进口javafx.scene.shape.Line;
  
  公开课ShowClock扩展应用程序{
  @Override//覆盖方法在应用程序类
  公共空间开始(primaryStage阶段){//创建时钟面板
  ClockPane时钟=new ClockPane ();//当前时间整理为字符串
  字符串timeString=clock.getHour () +“:“+ clock.getMinute ()
  +“:“+ clock.getSecond ();
  标签lbCurrentTime=新标签(timeString);
  
  BorderPane窗格=new BorderPane ();
  pane.setCenter(时钟);
  pane.setBottom (lbCurrentTime);//将时钟字符串设为靠上居中
  BorderPane。setAlignment (lbCurrentTime Pos.TOP_CENTER);
  
  现场场景=新场景(窗格中,250250);
  primaryStage.setTitle(“显示Clock");
  primaryStage.setScene(现场);
  primaryStage.show ();
  }
  公共静态void main (String [] args) {
  Application.launch (args);
  }
  }

ClockPane类

包最佳时期的;
  
  进口java.util.Calendar;
  进口java.util.GregorianCalendar;
  进口javafx.scene.layout.Pane;
  进口javafx.scene.paint.Color;
  进口javafx.scene.shape.Circle;
  进口javafx.scene.shape.Line;
  进口javafx.scene.text.Text;
  
  公开课ClockPane扩展面板{
  私人int小时;
  私人int分钟;
  私人int第二;//时钟面板的宽度和高度
  私人双w=250 h=250;/* *用当前时间创建时钟*/公共ClockPane () {
  setCurrentTime ();
  }/* *返回小时*/公共int getHour(){返回时间;}/* *返回*/分钟
  公共int getMinute(){返回分钟;}/* *返回第二*/公共int getSecond(){返回第二;}/* *设置当前时间时钟*/公共空间setCurrentTime () {//用当前时间创建日历类
  日历日历=new GregorianCalendar ();
  这一点。小时=calendar.get (Calendar.HOUR_OF_DAY);
  这一点。分钟=calendar.get (Calendar.MINUTE);
  这一点。第二个=calendar.get (Calendar.SECOND);
  paintClock ();
  }/* *绘制时钟*/保护无效paintClock () {
  双clockRadius=Math.min (w h) * 0.4;//时钟半径//时钟中心x, y坐标
  双centerX=w/2;
  双centerY=h/2;//绘制钟表
  圈圆=new圆(centerX, centerY clockRadius);
  circle.setFill (Color.WHITE);//填充颜色
  circle.setStroke (Color.BLACK);//笔画颜色
  文本t1=新的文本(centerX-5 centerY-clockRadius + 12,“12“);
  文本t2=新的文本(centerX-clockRadius + 3, centerY + 5,“9”);
  文本t3=新的文本(centerX + clockRadius-10 centerY + 3,“3”);
  文本t4=new文本(centerX-3 centerY + clockRadius-3,“6“);//秒针
  双sLength=clockRadius * 0.8;
  双secondX=centerX + sLength *数学。罪(第二*(2 *数学。π/60));
  双secondY=centerY - sLength *数学。因为数学(第二* (2 *。π/60));
  样条曲线=new线(centerX, centerY, secondX secondY);
  sLine.setStroke (Color.GRAY);//分针
  双mLength=clockRadius * 0.65;
  双minuteX=centerX + mLength *数学。罪(分钟*(2 *数学。π/60));
  双minuteY=centerY - mLength *数学。因为(分钟*(2 *数学。π/60));
  行mLine=新行(centerX、centerY minuteX, minuteY);
  mLine.setStroke (Color.BLUE);//时针
  双hLength=clockRadius * 0.5;
  双hourX=centerX + hLength *
  数学。sin((12小时% +分钟/60.0)*(2 *数学。π/12));
  双胡瑞=centerY - hLength *
  数学。因为((12小时% +分钟/60.0)*(2 *数学。π/12));
  线=new线(centerX, centerY hourX,胡瑞);
  sLine.setStroke (Color.GREEN);//将之前的结点清空,绘制新创建的结点
  .clear getChildren () ();
  getChildren ()。addAll(圆,t1、t2、t3、t4,样条曲线,mLine,线);
  }
  }

关于使用JavaFX如何实现一个时钟效果就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

使用JavaFX如何实现一个时钟效果