博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javaFX 在窗口的标题栏显示当前时间,1秒更新一次时间
阅读量:5772 次
发布时间:2019-06-18

本文共 2542 字,大约阅读时间需要 8 分钟。

 例1:在窗口的标题栏显示当前时间,1秒更新一次时间

1 import java.text.DateFormat; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4  5 import javafx.animation.KeyFrame; 6 import javafx.animation.Timeline; 7 import javafx.application.Application; 8 import javafx.event.ActionEvent; 9 import javafx.event.EventHandler;10 import javafx.geometry.Insets;11 import javafx.scene.Scene;12 import javafx.scene.layout.GridPane;13 import javafx.stage.Stage;14 import javafx.util.Duration;15 16 public class Main extends Application {17 18     public static void main(String[] args) {19         launch(args);20     }21     22     @Override23     public void start(Stage primaryStage) throws Exception {24         // Create a pane to hold two players25         GridPane pane = new GridPane();26         pane.setStyle("-fx-border-color: green;");27         pane.setPadding(new Insets(10, 10, 10, 10));28         pane.setHgap(10);29         pane.setVgap(10);30         31         // Date format32         DateFormat df = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");33         34         EventHandler
eventHandler = e -> {35 primaryStage.setTitle(df.format(new Date()));36 System.out.println(df.format(new Date()));37 };38 39 Timeline animation = new Timeline(new KeyFrame(Duration.millis(1000), eventHandler));40 animation.setCycleCount(Timeline.INDEFINITE);41 animation.play();42 43 // Create a scene44 Scene scene = new Scene(pane, 400, 200);45 primaryStage.setScene(scene);46 primaryStage.setTitle("Starting");47 primaryStage.setResizable(false);48 primaryStage.show();49 }50 }

运行效果:

 

 

关于lambda表达式:

例1中的第34~37行的代码是lambda表达式的写法(感觉lambda表达式好难理解)。在这里,其实就是将一个匿名内部类的引用赋给一个变量。

EventHandler
eventHandler = e -> { primaryStage.setTitle(df.format(new Date())); System.out.println(df.format(new Date()));};

以上代码等同于:

EventHandler
eventHandler = new EventHandler
() { @Override public void handle(ActionEvent event) { primaryStage.setTitle(df.format(new Date())); System.out.println(df.format(new Date())); }};

 

例1中的第34~39行的代码可以改写成:

Timeline animation = new Timeline(new KeyFrame(Duration.millis(1000), new EventHandler
() { @Override public void handle(ActionEvent event) { primaryStage.setTitle(df.format(new Date())); System.out.println(df.format(new Date())); }}));

 

转载于:https://www.cnblogs.com/Satu/p/10809486.html

你可能感兴趣的文章
数据结构之红黑树(三)——删除操作
查看>>
html5视频标签
查看>>
JAVA进阶-注解
查看>>
三元表达式之理解/jquery源代码分析之$.inArray实现
查看>>
STM32 mdk软件仿真时过不去时钟的问题
查看>>
(转)让Spring自动扫描和管理Bean
查看>>
Spark Streaming概念学习系列之Spark Streaming容错
查看>>
Windows Server 2003 用户账户的密码和用户配置文件
查看>>
单例模式
查看>>
使用Nginx反向代理 让IIS和Tomcat等多个站点一起飞
查看>>
老旧的金融机构,是时候赶赶云计算的时髦了
查看>>
晶澳向埃及11MW混合发电项目供应光伏组件
查看>>
国产x86 CPU性能达Intel的80%?
查看>>
用友网络陈强兵:企业互联网需解决五大问题
查看>>
SMA推出Powerwall兼容Sunny Boy Storage逆变器
查看>>
一条sql语句在mysql中是如何执行的
查看>>
FSMT:文件服务器从03迁移到08R2实战演练
查看>>
云路由 vyatta 体验(二)NAT
查看>>
Spring MVC 数据绑定
查看>>
JSON<=NSDictionary<=转换=>NSData类型
查看>>