在Java中Swing是线程不安全的,是单线程的设计,这样的造成结果就是:只能从事件派发线程访问将要在屏幕上绘制的Swing组件。事件派发线程是调用paint和update等回调方法的线程,它还是事件监听器接口中定义的事件处理方法,例如,ActionListener中的actionPerformed方法在事件派发线程中调用。 
         Swing是事件驱动的,所以在回调函数中更新可见的GUI是很自然的事情,比如,有一个按钮被按下,项目列表需要更新时,则通常在与该按钮相关联的事件监听器的actionPerformed方法中来实现该列表的更新,从事件派发线程以外的线程中更新Swing组件是不正常的。 
有时需要从事件派发线程以外的线程中更新Swing组件,例如,在actionPerformed中有很费时的操作,需要很长时间才能返回,按钮激活后需要很长时间才能看到更新的列表,按钮会长时间保持按下的状态直到actionPerformed返回,一般说来耗时的操作不应该在事件处理方法中执行,因为事件处理返回之前,其他事件是不能触发的,界面类似于卡住的状况,所以在独立的线程上执行比较耗时的操作可能更好,这会立即更新用户界面和释放事件派发线程去派发其他的事件。 
        SwingUtilities类提供了两个方法:invokeLate和invoteAndWait,它们都使事件派发线程上的可运行对象排队。当可运行对象排在事件派发队列的队首时,就调用其run方法。其效果是允许事件派发线程调用另一个线程中的任意一个代码块。 
只有从事件派发线程才能更新组件。

1、invokeLater用法

转载于:https://www.cnblogs.com/scoefield-dys/p/6853693.html

Java中 EvenQueue.invokeLater用法相关推荐

  1. java中的基本用法

    java中的基本用法 关键字:专门用途的字符串 所有java关键字都是小写英文 标识符 java常量 java变量 ■ 作用域:起作用的区域■ 使用前必须先声明,在赋值.使用变量名访问这块区域 jav ...

  2. Java中getResourceAsStream的用法

    Java中getResourceAsStream的用法 首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String p ...

  3. Java中getResourceAsStream的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三 ...

  4. java中substring的用法

    2019独角兽企业重金招聘Python工程师标准>>> java中substring的用法 str=str.substring(int beginIndex);截取掉str从首字母起 ...

  5. JAVA中Final的用法

    JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...

  6. php simpledateformat,Java中SimpleDateFormat的用法介绍(代码示例)

    本篇文章给大家带来的内容是关于Java中SimpleDateFormat的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.为什么要使用SimpleDateFo ...

  7. java中demo接人_return的用法_如何理解java中return的用法?

    C语言中return用法?(请熟练者进) return是返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么 比方主函数intmain() {}这里就必须有一个return,只 ...

  8. java中native的用法

    java中native的用法前言:在查看 Thread.java 文件时,发现有一个 方法比较特殊 private native void start0();概念:native关键字说明其修饰的方法是 ...

  9. day9:JAVA中while的用法

    一.while循环 while循环是先判断条件是否为真,如果条件为真,则执行循环体. 语句形式: while( 循环条件 ){ 一条语句 / 多条语句 ( 循环体 ) } 二.do-while循环 d ...

最新文章

  1. 点云处理关键算法剖析及实现(涉及滤波、分割、配准、识别、重建)
  2. SQL Server数据库开发的二十一条军规
  3. linux下调试core的命令
  4. C++ open 打开文件
  5. python无限循环语句的代码_如何在Python中实现非阻塞无限循环
  6. python graphviz中文乱码_graphviz画图与中文乱码等问题总结
  7. iOS 时间校准解决方案
  8. UIControl详解
  9. 指数型组织:打造独角兽公司的11个最强属性
  10. Axios 二次封装(超详细)
  11. Mybatis:高级知识1- resultMap实现一对一、一对多、多对多
  12. WPS for linux 安装及windows字体添加
  13. 网络安全建设网络可用性管理方法
  14. 淘宝客网站SEO及赚钱与揭密
  15. excel双击后公式计算机,#电脑上的excel表格里的数字为什么要双击才能展开#excel文本双击后变数字...
  16. 设计模式知我所见。。。
  17. gitkraken点击Glo出现白屏的情况,回退回去的解决办法
  18. Baizhi Memcached GJF
  19. 程序员薪水最高的25家公司
  20. 适合Java初学入门的几本图书

热门文章

  1. 第一范式、第二范式、第三范式
  2. Linux echo详解
  3. 【调侃】IOC前世今生
  4. win 开机 Microsoft corparation 滚动栏
  5. 如何修改Linux主机名
  6. struts2对action的搜索规则
  7. java线程安全性_Java并发-线程安全性
  8. 模仿github网页前端HTML,仿github404页面特效
  9. 4.5.2 OSPF协议与链路状态算法
  10. 异步复位和同步释放电路的详细解释