通常有以下三类线程和Swing相关:
(1)初始线程(Initial threads):当一个应用启动时会产生一组初始线程,比如在JAVA APPLICATION应用中调用main()方法的线程;在Apllet中创建applet对象,并调用init()和start()方法的线程。在Swing程序中,初始线程所需完成的工作并不多,其中最重要的工作就是创建一个Runnable对象以初始化GUI并在EDT上计划一些任务。一旦GUI出现,程序就主要由事件驱动,而相应的事件响应代码主要在EDT上执行。在初始化线程中,可以通过编码在EDT或WT上计划一些任务。通过以下两个方法:javax.swing.SwingUtilities.invokeLater
or
javax.swing.SwingUtilities.invokeAndWait
,在EDT上安排一些任务。这两个方法的区别:前者立刻返回,后者执行完再返回。注意:一般和创建GUI的任务以及和GUI相关的任务最好通过以上两个方法将相关任务放到EDT中执行,虽然放到初始线程中也可以,但由于绝大多数Swing方法不是线程安全的,为了预防不可预料错误的发生,最好照办。
(2)事件派发线程(event dispatch thread
):和Swing相关的方法基本都放置在EDT中执行,在这个线程中执行的一般都是短任务,比如事件响应函数,如果将长任务放置其中执行,会导致GUI被冻结。
(3)后台线程(Worker threads
):长任务一般放置于其中执行,在这个线程上运行的任务由javax.swing.SwingWorker
表示,具体细节可以查看java-tutorial等相关文档。
分享到:
相关推荐
JAVA 开发 Swing与多线程 JAVA 开发 Swing与多线程
(java)Swing中弹出对话框的几种方式
java+swing+io+多线程,一个简易的实现局域网内多人聊天的软件代码,用于学习交流。
用JavaSwing写的测试版多人猜拳, 暂时不包含源代码
java Swing窗体版多线程下载程序编写示例,多线程下载的实现, 将网络URL中指定的网络文件下载到本地文件中保存。 本代码中将完成新建任务构造器、配置文件构造器,保存下载信息,获取配置文件名,设置在前台显示...
Java 基于swing的多线程聊天室源代码,没有几个Java代码文件,不过这个确是CS结构的,包括了客户端和服务端的程序代码,通过这个小小的程序,你可以了解Java多线程的相关技巧、还有如何进行点对点的聊天,发送消息、...
java swing漂亮界面 超酷 javaswing教程
运用swing界面,多线程,流。适合初学者
基于java Swing 图形界面的多线程下载器 能断点续传,界面类似迅雷
Java Swing 赛马 线程 实例 可以自己扩展 接着开发
老师亲自做的聊天室程序。java swing 聊天室。java swing 聊天室。
java swing漂亮软件界面 超酷 以及java swing教程
基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统,小白必看! 基于Java Swing + MySQL的图书管理系统,优秀Java毕业设计系统...
使用java之swing开发的斗地主游戏,采用数学函数模拟发牌效果,最大程度还原斗地主。开始之前需要填写用户昵称,结果会有用成功失败的提示!
Java+Swing+Mysql实现酒店管理系统,系统经多次测试,运行无误,大家放心下载。
Java 基于swing 坦克游戏.zipJava 基于swing 坦克游戏.zip Java 基于swing 坦克游戏.zipJava 基于swing 坦克游戏.zip Java 基于swing 坦克游戏.zipJava 基于swing 坦克游戏.zip Java 基于swing 坦克游戏.zipJava ...
在鼠标单击处,产生一个球,随机方向和随机速度,在窗口内运动(资源里含源代码和生成的.EXE文件)
电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关线程的书籍) OReilly.Java.Threads.3rd.Edition.Sep.2004.eBook-DDU Java Thread Programming (Sams) java线程第二版中英文 java线程第二版中英文 ...