![]() |
|
|
【IT168技术文档】Swing作为一个完整的UI解决方案,包含了一个GUI程序所拥有的方方面面,当然包括作为普通程序也好,作为GUI程序也好,作为Web程序等等程序都共有的线程概念。
Swing中的线程有三种:初始线程,事件线程,工作线程 这三种线程基本上包括了让一个GUI完美工作的方方面面,首先,初始线程被用来创建GUI组件、资源加载和启动GUI组件,众所周知,Swing是事件驱动的,所以当UI出现了之后,初始线程就完成了它的使命,并将接力棒交给了事件线程,Event Dispatch Thread,这个时候所有组件的事件行为都交给了这个线程去处理,当然我们自己也要需要用线程来运行许多任务,优秀的GUI程序是绝不能让界面被卡死不动的,那会让用户崩溃,所以这个时候就需要工作线程了,也可以说是在背后运行的线程,这种线程是劳动阶级,任劳任怨的执行者长时间的工作。 初始线程的写法很简单,这样就可以了:
但是Applet中,你可能需要调用SwingUtilities.invokeAndWait这个方法,要是init方法返回了,浏览器开始展现Applet,但是GUI的创建还在thread中,出错也是可想而知的。 原文地址
|