JavaFX 显示时间并每秒刷新

标签 java time javafx timer

你好,我想就这个问题寻求任何建议。

我想在标签或任何适合它的组件中以 HH:MM:SS 格式(每秒刷新一次)显示当前时间。

有什么建议吗?

编辑:有人要代码..所以我把它放在这里是为了更好地描述问题。 “当时我没有代码我想要实现的是简单的 GUI 日记,在其中一个标签中我想显示直到最近事件之前的剩余时间,在另一个标签中我想显示像时钟一样刷新每个第二。我需要它来让剩余时间工作。我能想到的就是创建新线程来完成它并刷新时钟,但我在 JavaFX 中使用多线程并不是那么先进。所以我想知道是否有人可以建议我比多线程简单的东西(我不知道如何将该线程实现到 JavaFX 组件中)”

最佳答案

时间轴版本:

long endTime = ...;
Label timeLabel = new Label();
DateFormat timeFormat = new SimpleDateFormat( "HH:mm:ss" );
final Timeline timeline = new Timeline(
    new KeyFrame(
        Duration.millis( 500 ),
        event -> {
            final long diff = endTime - System.currentTimeMillis();
            if ( diff < 0 ) {
            //  timeLabel.setText( "00:00:00" );
                timeLabel.setText( timeFormat.format( 0 ) );
            } else {
                timeLabel.setText( timeFormat.format( diff ) );
            }
        }
    )
);
timeline.setCycleCount( Animation.INDEFINITE );
timeline.play();

关于JavaFX 显示时间并每秒刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38566638/

相关文章:

python - 如何让一些东西不受 time.sleep() python 的影响

java - 同时扩展文本字段和文本区域的功能

javafx CubicCurve 箭头,具有角度和长度

java - 避免 JavaFX 中跨类的静态

java - 从 php 调用 javac

java - 如何在 JTable 中一次只选择一行?

python - 使用 python3.x 每 5 行检查 csv 的条件

java - 我怎样才能找到两个时间之间的差异?

java - org.apache.poi.xslf.usermodel 在文本后面发送图像

java - 使用逗号分隔坐标的扫描仪 NextInt()