java的swing print()是否必须在EDT(事件调度线程)上调用?
众所周知,执行需要花费很长的时间,而且在 EDT 上长时间运行的事情是很痛苦的。
简短的回答是,不,打印不需要在 EDT 上进行。
官方教程中对此进行了介绍:如何打印文本
交互式或非交互式打印
在交互模式下,打印期间会显示带有中止选项的进度对话框。这是进度对话框的示例。
该对话框允许用户跟踪打印进度。当在事件分派线程上调用 print 方法时,进度对话框是模态的,否则是非模态的。重要的是,您的文档在打印时保持不变,否则打印行为将不确定。打印方法可确保您的文档不会被更改,并在打印期间禁用该组件。
如果您以非交互模式在事件调度线程上调用 print 方法,则包括重绘在内的所有事件都将被阻止。这就是为什么仅建议具有不可见 GUI 的应用程序在 EDT 上进行非交互打印的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)