代码之家  ›  专栏  ›  技术社区  ›  dcstraw

多个Swing事件调度线程

  •  3
  • dcstraw  · 技术社区  · 17 年前

    我想在Swing中创建一个新的事件调度线程,但我很难在网上找到任何关于如何实现这一点的参考。我在.NET中通过创建一个新线程并调用Application.run(…)实现了这一点。有人这样做过吗?有可能在秋千上吗?

    3 回复  |  直到 17 年前
        1
  •  5
  •   Michael Myers    17 年前

    我对你的问题有点困惑,因为你提到了Swing,然后说你正在编写一个Eclipse插件。因为这个问题被标记为Swing,所以我将给出一个Swing答案(但发布为CW)。

    有一个事件分派线程。总是有一个事件分派线程,除非根本没有。您无法创建另一个。

    ModalityType 或更改对话框的 ModalExclusionType ModalExclusionType APPLICATION_EXCLUDE

    但是,我不认为这对您有什么帮助,因为Eclipse使用SWT而不是Swing。

        2
  •  5
  •   kari kari    17 年前

    (a) 所有JVM都不能很好地与多个EDT线程一起工作(本机代码中图形呈现逻辑的同步问题等等,IBM JVM与多个EDT线程一起失败,Sun JVM和Apple JVM确实可以工作)

    (b) Swing渲染逻辑几乎没有导致随机渲染错误的错误(例如, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6727829 ).

    无论如何,这样做基本上需要建立两个AppContext,每个AppContext都有自己的EDT线程。

        3
  •  2
  •   Powerlord    17 年前

    我要放弃我最后的答案,重新开始。

    在SWT中,您可以创建 Shell s(窗口)或自定义 Dialog 通过在创建过程中传递SWT.PRIMARY_modal style标志,仅对父级传递模态的。

    注意 对话 .

    为什么是SWT?因为Eclipse就是这么用的。见: Eclipse Platform Plug-in Developer Guide (压缩PDF)以获取更多详细信息。最新版本可在Eclipse的帮助系统中获得(帮助>帮助内容>插件开发环境指南)