我想制作一个时钟改变了JLabel的文本,我在修改文本方面遇到了麻烦。
谢谢Obiedog !!!!
如果有帮助的话,请提供我的时钟代码
答案 0 :(得分:1)
查看javadoc可能会对您有所帮助。
JLabel.setText()。
答案 1 :(得分:0)
看起来你的代码没有进入帖子,但我有一种感觉我知道你的问题表达方式有什么问题: - )
Swing使用单线程事件循环来实现其魔力。像这样的线程调用动作事件之类的事情,以及绘画之类的东西。
如果您使用简单的while循环作为时钟延迟,那么您将占用EDT(事件调度线程),这样Swing将永远无法重新绘制您的屏幕!您甚至可能会注意到在屏幕外拖动窗口可能会将其完全消除。
解决方案是使用在事件系统中工作的延迟机制。幸运的是,存在这样的事情!看一下javax.swing.Timer(注意:还有其他一个名为Timer的类,但是这个类是唯一一个在事件系统中工作的类。)通过在你的JLabel上调用setText(并可能重绘)在actionListener中那个Timer,你可以得到类似时钟的行为。