Java 使用实时计数器跟踪运行时间
我创建了一个javafx应用程序,其中包括一个时间跟踪功能,用于跟踪应用程序打开(运行)的时间。我知道Java 使用实时计数器跟踪运行时间,java,javafx,scenebuilder,Java,Javafx,Scenebuilder,我创建了一个javafx应用程序,其中包括一个时间跟踪功能,用于跟踪应用程序打开(运行)的时间。我知道System.currentTimeMillis(),但我想知道是否有可能创建一个显示(打印)在应用程序中花费的时间的按钮(该按钮没有按钮的功能-我只需要使用一个看起来不错的JFX按钮)。类似于实时计数器的东西,时间会自动增加 类似于此: 但是,除了使用动画,使用文本以外。 创建一个线程类 随时启动它,并将当前时间作为参数传递给上述类(System.currentTimeMillis()) 在线
System.currentTimeMillis()
,但我想知道是否有可能创建一个显示(打印)在应用程序中花费的时间的按钮(该按钮没有按钮的功能-我只需要使用一个看起来不错的JFX按钮)。类似于实时计数器的东西,时间会自动增加
类似于此:
但是,除了使用动画,使用文本以外。- 创建一个线程类
- 随时启动它,并将当前时间作为参数传递给上述类(
)System.currentTimeMillis()
- 在线程内部,有一个循环和一个
thread.sleep(1000)代码>在末尾。每次循环进行时,让它从当前时间中减去步骤2中经过的时间,如下所示:
System.currentTimeMillis()-startTime
- 使用适当的异步GUI更新方法来更新所需的按钮。您可以将计算的时间除以1000得到秒,再除以60得到分钟,再除以60得到小时
- 创建一个线程类
- 随时启动它,并将当前时间作为参数传递给上述类(
)System.currentTimeMillis()
- 在线程内部,有一个循环和一个
thread.sleep(1000)代码>在末尾。每次循环进行时,让它从当前时间中减去步骤2中经过的时间,如下所示:
System.currentTimeMillis()-startTime
- 使用适当的异步GUI更新方法来更新所需的按钮。您可以将计算的时间除以1000得到秒,再除以60得到分钟,再除以60得到小时
AnimationTimer
更新文本:
public class MyApp extends Application {
@Override
public void start(Stage primaryStage) {
long startTime = System.currentTimeMillis();
Label timerLabel = new Label();
new AnimationTimer() {
@Override
public void handle(long now) {
long elapsedMillis = System.currentTimeMillis() - startTime ;
timerLabel.setText(Long.toString(elapsedMillis / 1000));
}
}.start();
// lay out UI etc etc
}
}
只需使用
AnimationTimer
更新文本:
public class MyApp extends Application {
@Override
public void start(Stage primaryStage) {
long startTime = System.currentTimeMillis();
Label timerLabel = new Label();
new AnimationTimer() {
@Override
public void handle(long now) {
long elapsedMillis = System.currentTimeMillis() - startTime ;
timerLabel.setText(Long.toString(elapsedMillis / 1000));
}
}.start();
// lay out UI etc etc
}
}