1.如果一个动作占用的时间很长,就启动一个新的线程来执行他。因为如果事件派发线程执行的任务占用了大量的时间,那么用户界面几乎不能及时响应任何事件了。
2.如果一个动作在输入或输出上阻塞了,就启动一个新线程来处理输入输出。不要因为网络连接或其他IO处理无法作出响应而无限期的冻结用户界面。
3.如果需要等待指定的时间,不要让事件派发线程睡眠,而应该使用定时器,只能在事件指派线程上访问 Swing 组件。
4.在线程中做的事情不能接触用户界面。在启动线程前,应该先阅读来自用户界面的信息然后再启动他们,一旦这些线程完成就从事件派发线程中更新用户界面。