gpt4 book ai didi

java - 使用 SwingWorker 和 Timer 在标签上显示时间?

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:47 25 4
gpt4 key购买 nike

我想要一个显示当前时间并每秒刷新一次的时钟。我使用的代码是:

int timeDelay = 1000;
ActionListener time;
time = new ActionListener() {

@Override
public void actionPerformed(ActionEvent evt) {
timeLabel.setText(DateTimeUtil.getTime());
/*timeLabel is a JLabel to display time,
getTime() is samll static methos to return formatted String of current time */
}
};
SwingWorker timeWorker = new SwingWorker() {

@Override
protected Object doInBackground() throws Exception {

new Timer(timeDelay, time).start();
return null;
}
};
timeWorker.execute();

我想在除 EDT 之外的另一个线程中刷新 timeLabel 文本。
我做的对吗?还有其他更好的方法吗?
另外,作为引用,我已将 timeLabel 添加到 extendedJPanel 中,其中包含一些类似的实用程序,并且在另一个 MainJFrame 中调用。

最佳答案

您可以在没有 SwingWorker 的情况下执行此操作,因为这就是 Swing Timer 的用途。

int timeDelay = 1000;
ActionListener time;
time = new ActionListener() {

@Override
public void actionPerformed(ActionEvent evt) {
timeLabel.setText(DateTimeUtil.getTime());
/* timeLabel is a JLabel to display time,
getTime() is samll static methos to return
formatted String of current time */
}
};

new Timer(timeDelay, time).start();

关于java - 使用 SwingWorker 和 Timer 在标签上显示时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855037/

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