Java Swing GUI 事件分发线程

一、事件分发线程和主线程     

      默认情况下,所有的AWT或者基于Swing的应用程序,都是开始于两个线程的。其中一个就是主线程,它处理main方法里面的代码。另外一个线程,被称作“事件分发线程”(Event-dispatching thread),它负责处理事件、绘图、和布局。所有在主线程中编写的对GUI进行绘制、处理的语句都会在后台自动放入到事件分发线程中等待处理,而除主线程之外的其他线程则在自己线程中进行处理。

      而监听器里面的处理方法也是放到事件分发线程中进行处理(可以通过静态方法SwingUtilities.isEventDispatchThread()验证)举例来说,你在actionPerformed()方法里面写的代码是自动在“事件分发线程”(Event-dispatching thread)里面被执行的(你不必为此作什么事情)。而且,这对所有其他的事件处理方法都是成立的。正是由于这个原因,“事件分发线程”(Event-dispatching thread)在Swing和AWT里面具有极其重要的作用,这个线程在维护组件状态和显示方面扮演着一个基础性的角色。

      既然,“事件分发线程”(Event-dispatching thread)要执行所有的监听器里面的方法,处理事件、绘图、和布局等,那么event-handling, painting,以及layout等方法必须要快速执行,就变的相当的重要了。否则的话,就会为了等待一个事件处理,比方说repaint、layout的完成而被堵塞,这样你的应用程序看起来就僵住不动了。

二、线程安全

      在Java中Swing是线程不

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值