【发布时间】:2018-08-30 22:34:51
【问题描述】:
我正在对 JFrame 窗口上的后台进程进行多线程处理,并且我想更新函数内的全局 JLabel 变量的文本。
所以当线程运行时,我的 while 和 for 循环会运行,但在它们运行期间,它会调用另一个函数来更改文本。
但是,它不会更新,直到线程完成执行(即循环完成时)。发生这种情况的任何原因,以及如何解决这个问题?
如果我尝试只更改线程内 JLabel 的文本,它会得到相同的结果。
【问题讨论】:
-
听起来您正在尝试从事件调度线程中更新 ui,从而阻止更新 ui - 您最好证明一个可运行的示例来证明您的问题
-
您考虑过使用progress bar吗?
-
我试图改写您的问题以使其更好地阅读。但是,cmets 是正确的:A)多线程和摆动很复杂,您是否使用正确的方法 B)可能是您应该查看的进度条 C)请阅读 minimal reproducible example 然后编辑/增强您的问题相应地。
-
使用
SwingWorker在长时间运行的任务/操作时更新 GUI
标签: java multithreading swing methods jlabel