【发布时间】:2010-03-28 04:01:40
【问题描述】:
对于我的应用程序,我必须构建一个小的自定义时间记录器,它会在我告诉它的任何延迟之后滴答作响,并将新值写入我的 textArea。问题是代码在终止时间之前完全运行,然后打印所有值。如何在代码运行时更改文本区域。
while(tick<terminationTime){
if ((System.currentTimeMillis()) > (msNow + delay)){
msNow = System.currentTimeMillis();
tick = tick + 1;
currentTime.setText(""+tick);
sourceTextArea.append(""+tick+" " + System.currentTimeMillis() +" \n");
}
}
currentTime 和 sourceTextArea 都是文本区域,在 while 循环结束后都会更新。
【问题讨论】:
-
您是否在事件调度线程上运行此代码?如果是这样,那是你的问题。
-
您是否尝试过在要更新的对象上调用 repaint()?
-
这是在动作监听器中吗?
-
这是在动作监听器中..这是问题吗?我如何解决它?我确实尝试调用重绘方法,它不起作用。我尝试在不同的线程中运行它,但这也不能解决它。
-
看起来听众是问题所在。查看我在另一个线程中进行更新的示例,以便侦听器可以完成。