(转)swt中调用awt的死锁问题
来源:互联网 发布:cfa 二级 知乎 编辑:程序博客网 时间:2024/05/17 04:45
swt中调用awt的死锁问题
在swt中调用awt/swing组件时出现了程序没有响应,最后发现原来是在操作时我点击的是swt中的一个Button,然后在这个Button的Listener里执行的是更新awt/swing组件的操作,由于没有把更新awt/swing组件的操作放到Event-Dispatching Thread 线程中去,而awt/swing组件的事件(Event Listener中的事件)处理和绘制都必须由Event-Dispatching Thread线程调用。因此导致了线程的死锁,解决方法就是用SwingUtilities的invokeLater方法将更新awt/swing组件的代码显示地加入Event-Dispatching Thread线程中。
//swing组件的方法
publicvoid setDocumentText(String sText)
{
final String s =sText;
javax.swing.SwingUtilities.invokeLater(newRunnable()
{
public voidrun()
{
jText.setText(s);
}
});
}
Btn.addSelectionListener(newSelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
swing.setDocumentText(sText) ;
});
}
这样就ok了
附:这篇文章很好,帮我解决了一直长期困扰的问题。
我的邮箱: liuliu541 (at) 163.com,欢迎交流!
- (转)swt中调用awt的死锁问题
- 在AWT中使用swt时,出现MessageException类型无法加载的问题
- SWT中使用AWT组件
- Java GUI编程中AWT/swing/SWT的优缺点
- 在SWT中使用AWT和Swing的控件
- Java GUI编程中AWT/swing/SWT的优缺点
- SWT:AWT和SWING的强大竞争者
- SWT:AWT和SWING的强大竞争者
- SWT:AWT和SWING的强大竞争者
- SWT, SWING, AWT各自的特点
- AWT、SWING、SWT和JFACE的比较
- 关于SWT与AWT/Swing的关系
- AWT,SWT和Swing的区别
- swt、awt、swing的工作模式
- AWT 、Swing、SWT的区别与比较
- AWT、SWING、SWT和JFACE的比较
- Java的GUI发展-AWT/SWT/Swing
- 对Swing、AWT和SWT的认识
- eclipse 开发一定要用这种字体。YaHei Consolas Hybrid
- HOJ2544
- 栈溢出攻击系列:shellcode在linux x86 64位攻击获得root权限(六)固定地址的栈溢出攻击
- Eclipse RCP 工具栏第一个图标很重要!
- Java软件用 exe 启动
- (转)swt中调用awt的死锁问题
- C语言:回车和换行的区别
- 用海洋光学光谱仪测日光灯的光谱
- 解决办法:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403
- unity3d 加载和内存管理
- BundleLoader.findClassInternal(BundleLoader.java:513)错误解决方法
- [总结]数据库连接池设置不当导致大量的本地连接出现time_wait状态。
- unity3d 内存管理
- 为什么覆写equals的时候一定要覆写hashCode?