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


     例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     @Override
    23     public void start(Stage primaryStage) throws Exception {
    24         // Create a pane to hold two players
    25         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 format
    32         DateFormat df = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
    33         
    34         EventHandler<ActionEvent> 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 scene
    44         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表达式:https://www.cnblogs.com/franson-2016/p/5593080.html

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

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

    以上代码等同于:

    EventHandler<ActionEvent> eventHandler = new EventHandler<ActionEvent>() {
        @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<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            primaryStage.setTitle(df.format(new Date()));
            System.out.println(df.format(new Date()));
        }
    }));
  • 相关阅读:
    GIS有关GP服务的发布和调用
    博文列表
    VCL编写笔记整理
    Delphi操作Excel(Use Oel)
    使用 ImageEnView 给图片加水印,及建缩略图
    Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
    从给定字符串中截取n个字节的字符(解决汉字截取乱码问题)
    tbytes 转 十六进制 string
    Delphi中拖动的方式来移动TPageControl的Tab
    delphi TEdit透明
  • 原文地址:https://www.cnblogs.com/Satu/p/10809486.html
Copyright © 2020-2023  润新知