【问题标题】:Object Creation on EDTEDT 上的对象创建
【发布时间】:2015-03-11 16:02:32
【问题描述】:

我认为提出我的问题的最简单方法是建立它。我对 EDT 的某些工作方式有些困惑。

是否有从 EDT 上创建的 Swing 组件创建的任何对象?

为了扩展这个问题,如果我创建一个 JFrame,并在其构造函数中创建对象 X、Y 和 Z,那么 X、Y、Z 是否也在 EDT 上创建?

进一步扩展这个问题,如果在 X 的类创建过程中,它在等待网络资源时被阻塞,这会阻塞 EDT 吗?

【问题讨论】:

    标签: java swing event-dispatch-thread


    【解决方案1】:

    是否有从 EDT 上创建的 Swing 组件创建的任何对象?

    仅当您的代码在 EDT 上运行时。在事件监听器中执行的代码会在 EDT 上自动执行。

    当您通过 main() 方法启动 GUI 时,除非您专门将代码放在 EDT 上,否则它不会在 EDT 上运行。这通常通过使用 SwingUtilities.invokeLater() 来完成。

    阅读Concurrency 上的 Swing 教程以获取更多信息。另请阅读目录,特别是 How to Make Frames 部分,了解在 EDT 上启动代码的简单示例。

    如果在 X 的类创建过程中,它在等待网络资源时被阻塞,这会阻塞 EDT 吗?

    同样,仅当代码块在 EDT 上执行时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      相关资源
      最近更新 更多