我试图了解该线程的真正目的。
我已经看过书,文章,但是并没有清楚地了解EventQueue线程负责什么。我已经看到了很多示例,有时会用到,有时不会。据我了解,该线程负责所有GUI操作,例如创建窗口,组件,从OS API调用本机函数和其他内容。因此,每次更改GUI的某些部分时,都应将此操作传递给队列。
因此,使用队列应用程序默认情况下具有两个主线程和事件调度线程。因此,我所有商务逻辑都应在主线程中执行(或从主线程创建新线程),并在EventQueue中执行所有gui操作(例如,向表中添加新项,更改标签更新列表中的文本)。此外,我应该在EventQueue中创建主窗口的实例(类扩展jframe)吗?
我对吗 ?如果没有,请解释。提前谢谢大家。
最佳答案
听起来您已经掌握了要点,是的。如果您的应用程序本质上是“纯GUI”,则可以在EDT上执行所有操作(事件分发线程,即运行您传递给EventQueue.invokeLater
的线程),但是您必须在EDT上创建窗口,这意味着您的方法必须至少使用main()
一次。
因为将在EDT上通知GUI对象上的所有侦听器,所以通常不需要从处理程序中使用EventQueue.invokeLater
。