我将尝试使用
SwingWorker实例(尤其是其
doInBackground方法)在
doWork与主UI线程不同的线程上执行当前正在执行的 *** 作。按照编写方式,您的侦听器方法势必会在执行期间冻结用户界面,正如您所说的那样,这可能会很长一段时间,从而导致不良的用户体验。
更改
JLabel文本可以在三个不同的地方进行:首先,在调用
execute(即开始)之前
SwingWorker;其次,使用
publish/
process机制
SwingWorker在用户界面上发布中间结果;第三,在
done方法中,在方法
SwingWorker执行完毕后立即在UI线程上再次调用它
doInBackground。
参考资料:Oracle的有关工作线程
SwingWorker的教程以及该类的
JavaDoc API
文档
SwingWorker。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)