gpt4 book ai didi

java - Java Swing 中的 EventQueue.invokeLater

转载 作者:行者123 更新时间:2023-12-01 18:26:20 30 4
gpt4 key购买 nike

我试图理解这个帖子的真正目的。我读过书籍、文章,但没有清楚地理解EventQueue线程负责什么。我看过很多例子,有时用这个,有时不用。据我了解,该线程负责所有 GUI 操作,例如创建窗口、组件、从操作系统 API 调用 native 函数和其他内容。因此,每次我更改 GUI 的某些部分时,我都应该将此操作传递到队列。因此,使用队列应用程序默认有两个线程:主线程和事件调度线程。因此,我所有的业务逻辑都应该在主线程中执行(或者从主线程创建新线程),并且所有 gui 操作都应该在 EventQueue 中执行(例如,向表中添加新项目、更改标签更新列表中的文本)。此外,我应该在 EventQueue 中创建主窗口的实例(类扩展 jframe)?

我说得对吗?如果没有请解释。预先感谢大家。

最佳答案

EventQueue管理单个 GUI 线程,因为它必须依赖主机平台的 GUI 资源,这些资源也是 single-threaded 。您可以在 initial thread 上运行非 GUI 代码,但您必须自己同步对任何共享数据的访问。 SwingWorker ,检查here ,是一个方便的替代方案。

关于java - Java Swing 中的 EventQueue.invokeLater,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26043762/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com