【问题标题】:Why do I need Swing Utilities and how do I use it?为什么我需要 Swing Utilities 以及如何使用它?
【发布时间】:2011-06-14 12:50:07
【问题描述】:

这主要是关于我的问题here,但我不明白为什么需要Swing Utilities 以及它的用途。我正在设计一个 Swing gui,我不想错过 Swing Utilities 可能提供的任何东西。也有人可以解释invokeLater 方法的作用以及它是如何工作的。

【问题讨论】:

标签: java swing swingutilities


【解决方案1】:

正如API 中所述,SwingUtilities 是 Swing 实用方法的集合。在这种情况下,需要确保在 Event Dispatch Thread 或 EDT 中创建/修改 Swing 组件。此外,正如API 中所述,invokeLater 在应用程序线程需要更新 GUI 时使用。

您可能还想阅读Concurrency in Swing。另外,More In-Depth Explanation of invokeLater

【讨论】:

  • 这是否意味着每当我执行 pack() 或触摸我的框架时,它应该在一个新的 Runnable() 中?
  • @Grammin,不一定。仅当您处于单独的线程中时(即 EDT 以外的线程)。 Swing 不是线程安全的,因此对 Swing 组件的所有更新都应该放在 EventQueue 上,SwingUtilities 让您可以轻松做到。
  • 在许多情况下,您可以在事件侦听器中更改框架或组件的属性。所有事件侦听器代码都在 EDT 上运行,因此您不必担心这一点。如果您的应用程序创建了单独的线程,那么您需要担心这一点。
猜你喜欢
  • 2014-06-01
  • 2018-01-07
  • 1970-01-01
  • 2011-10-22
  • 2018-05-16
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多