gpt4 book ai didi

java - 如何用JLabel创建定时器?

转载 作者:行者123 更新时间:2023-12-02 04:14:16 26 4
gpt4 key购买 nike

我想在我的 JPanel 中显示一个带有定时器的 JLabel 在此模式下,例如:

03:50 sec
03:49 sec
....
....
00:00 sec

所以我构建了这段代码:

@SuppressWarnings("serial")
class TimeRefreshRace extends JLabel implements Runnable {

private boolean isAlive = false;

public void start() {
Thread t = new Thread(this);
isAlive = true;
t.start();
}

public void run() {
int timeInSecond = 185
int minutes = timeInSecond/60;
while (isAlive) {
try {
//TODO
} catch (InterruptedException e) {
log.logStackTrace(e);
}
}
}

}//fine autoclass

通过这段代码,我可以启动 JLabel

TimeRefreshRace arLabel = new TimeRefreshRace ();
arLabel.start();

所以我的时间是秒的,例如 180 秒,我该如何创建计时器?

最佳答案

这是一个如何构建倒计时标签的示例。您可以使用此模式来创建您的组件。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.Timer;
import javax.swing.WindowConstants;

public class TimerTest {

public static void main(String[] args) {
final JFrame frm = new JFrame("Countdown");
final JLabel countdownLabel = new JLabel("03:00");
final Timer t = new Timer(1000, new ActionListener() {
int time = 180;
@Override
public void actionPerformed(ActionEvent e) {
time--;
countdownLabel.setText(format(time / 60) + ":" + format(time % 60));
if (time == 0) {
final Timer timer = (Timer) e.getSource();
timer.stop();
}
}
});
frm.add(countdownLabel);
t.start();
frm.pack();
frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frm.setVisible(true);
}

private static String format(int i) {
String result = String.valueOf(i);
if (result.length() == 1) {
result = "0" + result;
}
return result;
}
}

关于java - 如何用JLabel创建定时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33478392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com