zoukankan      html  css  js  c++  java
  • JavaFx全屏时钟显示

    闲来无事做些小玩意

    做这个之前先阅读SpringBoot整合JavaFx

    showTime.fxml:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <?import javafx.scene.text.*?>
    <?import javafx.geometry.*?>
    <?import javafx.scene.control.*?>
    <?import java.lang.*?>
    <?import javafx.scene.layout.*?>
    
    
    <?import javafx.scene.image.ImageView?>
    <BorderPane minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0"
                xmlns="http://javafx.com/javafx/8"
                xmlns:fx="http://javafx.com/fxml/1"
                fx:controller="com.maxinhai.diary.controller.ShowTimeController">
       <!--ImageView被遮挡应该将ImageView放在最顶层容器-->
       <ImageView fx:id="imageView">
          <image>
          </image>
       </ImageView>
       <center>
          <Label fx:id="message"
                 alignment="CENTER"
                 contentDisplay="CENTER"
                 prefHeight="400.0" prefWidth="601.0"
                 opacity="0.5"
                 text="" textAlignment="CENTER"
                 BorderPane.alignment="CENTER"
          >
             <BorderPane.margin>
                <Insets />
             </BorderPane.margin>
             <font>
                <Font name="System Bold Italic" size="96.0" />
             </font>
             <opaqueInsets>
                <Insets />
             </opaqueInsets>
          </Label>
       </center>
    </BorderPane>

    ShowTimeFxmlView:

    import de.felixroske.jfxsupport.AbstractFxmlView;
    import de.felixroske.jfxsupport.FXMLView;
    
    @FXMLView(value = "/fxml/showTime.fxml",title = "showTime",bundle = "i18n.index",encoding = "utf-8")
    public class ShowTimeFxmlView extends AbstractFxmlView {
    }

    ShowTimeController:

    import com.maxinhai.diary.DiaryApplication;
    import de.felixroske.jfxsupport.FXMLController;
    import javafx.application.Platform;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;
    import javafx.scene.control.Label;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    
    import java.net.URL;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.ResourceBundle;
    
    /**
     * 时钟显示
     */
    @FXMLController
    public class ShowTimeController implements Initializable {
    
        @FXML
        public Label message;
        @FXML
        public ImageView imageView;
    
        @FXML
        public void setContent(String content) {
            message.setText(content);
        }
    
        @Override
        public void initialize(URL location, ResourceBundle resources) {
            Image image = new Image("image/mv.jpg");
            imageView.setImage(image);
            imageView.setDisable(false);
    
            // 使图片宽度、高度随窗口变化而变化
            DiaryApplication.getScene().heightProperty().addListener(new ChangeListener<Number>() {
                @Override
                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                    imageView.setFitHeight(newValue.doubleValue());
                }
            });
            DiaryApplication.getScene().widthProperty().addListener(new ChangeListener<Number>() {
                @Override
                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                    imageView.setFitWidth(newValue.doubleValue());
                }
            });
            // 使Label大小随窗口大小变化而变化
            DiaryApplication.getStage().widthProperty().addListener(new ChangeListener<Number>() {
                @Override
                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                    message.setPrefWidth(newValue.doubleValue());
                }
            });
            DiaryApplication.getStage().heightProperty().addListener(new ChangeListener<Number>() {
                @Override
                public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                    message.setPrefHeight(newValue.doubleValue());
                }
            });
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd
    HH:mm:ss");
            setContent(sdf.format(new Date()));
    // 创建一个线程,每隔1秒更新一下Label里的内容
    new Thread(()-> { while (true) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } // 更新UI线程 Platform.runLater(()-> { message.setText(sdf.format(new Date())); }); } }).start(); } }

    图片存放位置:

    实现效果:

  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/mxh-java/p/14319282.html
Copyright © 2011-2022 走看看