gpt4 book ai didi

java - 如何在循环中更改 JLabel 的文本而不切换得太快以至于用户看不到它?

转载 作者:太空宇宙 更新时间:2023-11-04 08:52:21 25 4
gpt4 key购买 nike

我想使用 Java 创建一个简单的时钟。代码很简单,我举个例子:

for(int i=0;i<=60;i++)
jLabel11.setText( Integer.toString(i) );

问题是当我运行程序时,结果没有按顺序显示每个更新。它只立即显示 60 位数字,而不显示从 1 到 2 到 3 的变化...

如何解决这个问题?

最佳答案

问题在于,对 UI 的更改应在事件调度线程上运行,但阻塞此循环(并阻塞 UI)将阻止屏幕重新绘制。相反,使用计时器来执行定期更新,例如

Timer timer = new Timer();

ActionListener updater = new ActionListener()
{
int count;
public void actionPerformed(ActionEvent event) {
jLabel11.setText( Integer.toString(count++) );
if (count==60)
timer.stop();
}
}
timer.setDelay(100);
timer.addActionListener(updater);
timer.start();

查看太阳教程 - How to use Swing Timers .

关于java - 如何在循环中更改 JLabel 的文本而不切换得太快以至于用户看不到它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3056255/

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