更新的JLabel从另一个线程

亲爱的家伙,我在挥杆相关的问题。 我不能共享代码,因为它是对公司的政策,所以我会尽我所能来解释这个问题。

总之,我已经创建了扩展的JWindow包含一个JLabel的类。 此JLabel的文本是通过一个定时器对象实例化使用scheduleAtFixedRate方法每50毫秒一个TimerTask随机更新。 JLabel中的值通过调用一个单独的线程的方法(我们称之为传动螺纹)处理数据传输到某个设备检索。 问题是,的JWindow出现在屏幕上没有任何内容,直到传输到设备结束了,那么我会得到传输线的最后结果。 会是什么问题呢?

--------------解决方案-------------

问题是,您可以访问Swing组件在其他线程不是事件指派线程(EDT)。 这是被禁止的。

每一次挥杆的Javadoc,componenthas一个链接到这个网页:http://download.oracle.com/javase/6/docs/api/javax/swing/package-summary.html#threading,其中螺纹政策详细解释。

代替java.util.Timerjavax.swing.Timer可能会更方便,如在这个例子。

分类:java的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.373 (s). 10 q(s)