首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的EventQueue.invokeLater

Java中的EventQueue.invokeLater
EN

Stack Overflow用户
提问于 2014-09-25 16:37:38
回答 2查看 941关注 0票数 0

我正在努力理解这条线索的真正目的。我读过书、文章,但不清楚EventQueue线程负责的是什么。我见过很多例子,有时用,有时不用。据我所知,这个线程负责所有GUI操作,例如创建窗口、组件、从OS和其他方面调用本机函数。因此,每次我更改GUI的某些部分时,我都应该将此操作传递给队列。因此,在默认情况下,使用队列应用程序有两个线程: main线程和事件调度线程。因此,我所有的bussines逻辑应该在主线程(或从main创建新线程)和EventQueue中的所有gui操作中执行(例如,向表中添加新项,在标签更新列表中更改文本)。此外,我还应该在EventQueue中创建主窗口的实例(类扩展jframe)?

我说得对吗?如果不是,请解释。提前谢谢大家。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-25 16:41:48

听起来你已经掌握了要点,是的。如果您的应用程序本质上是“纯GUI”,则只需在EDT ( everything,它是运行传递给EventQueue.invokeLater的线程)上完成所有操作,但是您必须在EDT上创建窗口,这意味着main()方法必须至少使用EventQueue.invokeLater一次。

因为GUI对象上的所有侦听器都将在EDT上得到通知,所以通常不需要从处理程序中使用EventQueue.invokeLater

票数 1
EN

Stack Overflow用户

发布于 2014-09-25 17:58:31

EventQueue管理单个GUI线程,因为它必须依赖主机平台的GUI资源,这些资源也是单螺纹。您可以在初始螺纹上运行非GUI代码,但您必须自己同步访问任何共享数据。SwingWorker,检查了这里,是一种方便的选择。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26043762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档