我刚接触过java,有一个面试问题,问我一个研究生的角色,我不明白,所以你能告诉我哪条线和它的用途吗?
发布于 2013-08-07 16:19:37
Swing UI工具包是单线程的(从任何其他线程调用任何swing库都是不安全的)。所有UI事件,包括呈现和分发,都是由EDT thread完成的。
所以点击桌面上的一个按钮。操作系统向EDT发出通知,EDT接收事件,然后触发为按钮单击注册的回调函数。此外,从代码中,当您执行一些操作时(例如:重新绘制屏幕或绘制图像)。EDT将更改传递到操作系统,并在屏幕上呈现。因此出现了双向互动。
因为如前所述,Swing UI工具包是单线程的。因此,建议只调用EDT中的任何Swing库来设计System.invokeLater。更多信息,这里。
发布于 2013-08-07 16:20:23
你在找事件调度线程。
知道这件事很漂亮..。很重要。理解您的代码将在长期运行的任务上运行的线程是至关重要的,不应该在EDT上运行。相反,将这些任务分派到自己的线程上,然后在操作结束时运行回调以使用SwingUtilities更新GUI。
https://stackoverflow.com/questions/18108525
复制相似问题