我正在使用 javax.swing.Timer 来安排和运行事件。但它似乎冻结了 GUI。只是想知道这些事件是否在单独的线程上运行,或者我是否必须自己执行。
Thanks
“尽管所有 Timer 使用单个共享线程(由第一个执行的 Timer 对象创建)执行等待,但 Timer 的操作事件处理程序在另一个线程(事件调度线程)上执行。这意味着 Timer 的操作处理程序可以安全地对 Swing 组件执行操作。但是,这也意味着处理程序必须快速执行保持 GUI 的响应能力。”—javax.swing.Timer
Emphasis added.
附录:SwingWorker专为这种情况而设计。特别是,它提供了一种便捷的方式来卸载工作,同时定期报告 EDT 的进度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)