从另一个线程更新JLabel

发布于 2021-01-29 20:47:09

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

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

关注者
0
被浏览
95
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看