本文包括以下内容:
单线程规则:Swing线程在同一时刻仅能被一个线程所访问。一般来说,这个线程是事件派发线程(event-dispatching thread)。
规则的例外:有些操作保证是线程安全的。
事件分发:假如你需要从事件处理(event-handling)或绘制代码以外的地方访问UI,那么你可以使用SwingUtilities类的invokeLater()或invokeAndWait()方法。
创建线程:假如你需要创建一个线程??比如用来处理一些耗费大量计算能力或受I/O能力限制的工作??你可以使用一个线程工具类如SwingWorker或Timer。
为什么我们这样实现Swing:我们用一些关于Swing的线程安全的背景资料来结束这篇文章。
Swing的规则是:
一旦Swing组件被具现化(realized),所有可能影响或依靠于组件状态的代码都应该在事件派发线程中执行。
这个规则可能听起来有点吓人,但对许多简单的程序来说,你用不着为线程问题操心。在我们深入如何撰写Swing代码之前,让我们先来定义两个...[ 查看全文 ]