Component creation must be done on Event Dispatch Thread错误解决方法

在用java swing 做例子,给页面设置皮肤样式的时候出现了这个错误:

org.jvnet.substance.api.UiThreadingViolationException: Component creation
must be done on Event Dispatch Thread
    at
org.jvnet.substance.utils.SubstanceCoreUtilities.testComponentCreationThreadingViolation(SubstanceCoreUtilities.java:2368)
  
 at
org.jvnet.substance.SubstancePanelUI.createUI(SubstancePanelUI.java:57)
  
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  
 at java.lang.reflect.Method.invoke(Method.java:597)
  
 at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:36)
  
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  
 at java.lang.reflect.Method.invoke(Method.java:597)
  
 at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:243)
  
 at javax.swing.UIDefaults.getUI(UIDefaults.java:751)
  
 at javax.swing.UIManager.getUI(UIManager.java:1016)
  
 at javax.swing.JPanel.updateUI(JPanel.java:109)
    at
javax.swing.JPanel.<init>(JPanel.java:69)
    at
javax.swing.JPanel.<init>(JPanel.java:92)
    at
javax.swing.JPanel.<init>(JPanel.java:100)
    at
javax.swing.JRootPane.createGlassPane(JRootPane.java:527)
  
 at javax.swing.JRootPane.<init>(JRootPane.java:347)
  
 at javax.swing.JFrame.createRootPane(JFrame.java:260)
  
 at javax.swing.JFrame.frameInit(JFrame.java:241)
    at
javax.swing.JFrame.<init>(JFrame.java:164)
    at
com.chat.frame.ClientLoginFrame.<init>(ClientLoginFrame.java:52)
  
 at com.chat.frame.ClientLoginFrame.main(ClientLoginFrame.java:241)

后来查了很多资料,发现是由于swing 的线程不安全引起的,

解决方案如下:

在main方法里,程序的主入口加上:

SwingUtilities.invokeLater(new Runnable() {  
  
             public
void run() {  
  
           
     
  
           
     new ClientLoginFrame().setVisible(true);
//这个就是程序界面初始化
  
             }
 
           
});

这样问题就解决。

Component creation must be done on Event Dispatch
Thread错误解决方法,布布扣,bubuko.com

Component creation must be done on Event Dispatch
Thread错误解决方法

时间: 2024-12-27 17:58:47

Component creation must be done on Event Dispatch Thread错误解决方法的相关文章

Hyper-v Event ID 2 错误解决

在系统管理员日常管理Hyper-v中,可能会遇见各种各样的错误. 笔者这次遇见的错误现象是:一台DB虚拟机无故连接不上,重启,而且监控软件也没有监控到. 从这个描述来看,问题可能不光出在Hyper-v这边,也可能是出在监控软件一端,我们姑且先从Hyper-v虚拟机这边排查起,听到这个问题的时候,感觉很奇怪,hyper-v虚拟机突然无故重启,之前从没遇见过 初步分析,可能是由于虚拟网络或者Hyper-v宿主机相关因素导致 连接到VM虚拟机中,发现如下两个错误事件 经过google搜索,发现其中一个

Cause: Write access is allowed from event dispatch

出现的问题:升级as后,编译原有项目出现 Error:Failed to complete Gradle execution.Cause:Write access is allowed from event dispatch thread only 原因:升级后的as运行时jre和本地安装的jdk有冲突,建议使用as安装目录自带的jre目录. 解决:进入项目的程序结构,选中左边的sdk路径选项(sdk location)--> jdk路径(jdk location) --> 勾选use emb

javascript事件之:jQuery.event.dispatch详解

jQuery.event.dispatch,字面意思是事件分发.就是执行绑定的函数. 在jQuery.event.add中, //1, jQuery.event.add中 jQuery.event.dispatch.apply( eventHandle.elem, arguments ) //2, jQuery.event.simulate中 jQuery.event.dispatch.call( elem, e ); 我们来看看jQuery.event.dispatch的源码,看看其实现了什么

Eclipse编辑java文件报Unhandled event loop exception错误的解

本人Eclipse版本是"eclipse-jee-kepler-SR2-win32-x86_64" 昨天因为换电脑,所以重装了一下软件,装好eclipse之后eclipse是可以使用的(换电脑之前也一直是用这个版本).后来又装了其他一些软件, 为了工作效率,只有边装软件边coding.后来发现再次在Eclipse中编辑java文件就一直会弹出错误提示框.如图. 点开图下面的"Unhandled event loop exception"查看具体的错误,详细错误如下.

兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法

兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法 // 获取事件function getEvent(){ if(window.event) {return window.event;} func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0){ if((arg0.constructor==Event || arg0.constructor ==MouseEv

Atitit 解决Unhandled event loop exception错误的办法

Atitit 解决Unhandled event loop exception错误的办法 查看workspace/.metadata/.log org.eclipse.swt.SWTError: No more handles 查看handle,已经7w了... Tasklist manager,属性,表明句柄数量显示..exploror这个桌面程序使用了1w的handle.走关闭哪..sezo  ok 兰.. 原因:::handle over..Os bug 作者:: 绰号:老哇的爪子 ( 全

myeclipse报Unhandld event loop Exception怎么解决

我遇到的是这样的问题,在建立web项目后,然后再点击JSP页面编辑框,经常弹出:Unhandld  event  loop  Exception的错误提示框.让人心烦,后面查找原因 是由于使用的是jdk64位的版本,但是myeclipse安装的是32位的版本. 解决方法: 1.先卸载myeclipse,要清空注册表:开始-运行-输入:regedit   .然后选择编辑-查找,输入myeclipse.将找到的项右键删除. 2.然后重新安装myeclipse,最后选择64位的. 3.安装之后,不要运

关于火狐(firefox)及ie下event获取的两种方法

第一种方法: 代码如下: function a(e){ e=e||window.event; alert(e.keyCode); } ie浏览器如下调用 代码如下: <body onclick="a()"> firefox火狐浏览器如下调用 代码如下: <body onclick="a(event)"> 这样就可以调用成功. 这种方法在firefox需要带个参数过去,不是太好,下面介绍第二种方法 . 第二种方法: 代码如下: function

Servlet中 End event threw exception,错误404 的解决方法

End event threw exception  SEVERE: End event threw exceptionjava.lang.reflect.InvocationTargetException 这个异常是由于xml配置文件解析错误引起的. 以最近在用ServletContext获取上下文信息时遇到的错误为例: 在web.xml中配置驱动信息: 1 <context-param> 2 <param-name>driver</param-name> 3 <