小编典典

从另一个线程更新JLabel

java

亲爱的大家,我遇到了挥杆相关的问题。由于违反公司政策,我无法共享代码,因此我将尽力解释该问题。

简而言之,我创建了一个扩展包含JLabel的JWindow的类。JLabel的文本是通过计时器对象随机更新的,该计时器对象使用scheduleAtFixedRate方法每50毫秒实例化一个TimerTask。JLabel中的值是通过在一个单独的线程(称为传输线程)中调用一个方法来检索的,该线程负责将数据传输到某个设备。问题是JWindow出现在屏幕上没有任何内容,直到与设备的传输结束为止,然后我将获得传输线程的最后结果。这是什么问题?


阅读 217

收藏
2020-11-23

共1个答案

小编典典

问题是您访问了事件调度线程(EDT)之外的其他线程中的swing组件。这是禁止的。

每个swing组件的Javadoc都有指向此页面的链接:http :
//download.oracle.com/javase/6/docs/api/javax/swing/package-
summary.html#threading,其中详细介绍了线程策略。

2020-11-23