从Java Swing计时器计算经过的时间可以通过以下步骤实现:
以下是一个示例代码:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimerExample {
private static final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm:ss");
public static void main(String[] args) {
JFrame frame = new JFrame("Timer Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel timeLabel = new JLabel("00:00:00");
frame.add(timeLabel);
Timer timer = new Timer(1000, new ActionListener() {
private final Date startTime = new Date();
@Override
public void actionPerformed(ActionEvent e) {
Date currentTime = new Date();
long elapsedTime = currentTime.getTime() - startTime.getTime();
String formattedTime = formatTime(elapsedTime);
timeLabel.setText(formattedTime);
}
});
timer.start();
frame.pack();
frame.setVisible(true);
}
private static String formatTime(long time) {
long hours = time / (60 * 60 * 1000);
long minutes = (time % (60 * 60 * 1000)) / (60 * 1000);
long seconds = (time % (60 * 1000)) / 1000;
return String.format("%02d:%02d:%02d", hours, minutes, seconds);
}
}
这个示例代码创建了一个简单的Swing界面,其中包含一个标签用于显示经过的时间。通过使用计时器和ActionListener,每秒更新一次标签的文本,显示经过的时间。
在这个示例中,我们使用了SimpleDateFormat类来格式化时间,并使用Timer类来触发ActionListener的动作。计时器每秒触发一次动作,获取当前时间并计算与初始时间的差值,然后将差值格式化为小时、分钟和秒,并更新标签的文本。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云