如何在while循环中更改JLabel的文本

时间:2011-09-04 01:37:07

标签: java swing clock jlabel

我想制作一个时钟改变了JLabel的文本,我在修改文本方面遇到了麻烦。

谢谢Obiedog !!!!

如果有帮助的话,请提供我的时钟代码

2 个答案:

答案 0 :(得分:1)

查看javadoc可能会对您有所帮助。

JLabel.setText()。

答案 1 :(得分:0)

看起来你的代码没有进入帖子,但我有一种感觉我知道你的问题表达方式有什么问题: - )

Swing使用单线程事件循环来实现其魔力。像这样的线程调用动作事件之类的事情,以及绘画之类的东西。

如果您使用简单的while循环作为时钟延迟,那么您将占用EDT(事件调度线程),这样Swing将永远无法重新绘制您的屏幕!您甚至可能会注意到在屏幕外拖动窗口可能会将其完全消除。

解决方案是使用在事件系统中工作的延迟机制。幸运的是,存在这样的事情!看一下javax.swing.Timer(注意:还有其他一个名为Timer的类,但是这个类是唯一一个在事件系统中工作的类。)通过在你的JLabel上调用setText(并可能重绘)在actionListener中那个Timer,你可以得到类似时钟的行为。