SWT:程序中开启了一个线程,要改变界面,抛出: org.eclipse.swt.SWTException: Invalid thread access

密码测试 2006-05-28 03:24:38
Exception in thread "Thread-0" org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:2942)
at org.eclipse.swt.SWT.error(SWT.java:2865)
at org.eclipse.swt.SWT.error(SWT.java:2836)

上述Thread-0是我自己开启的一个线程,上述异常给我的感觉是,界面是由主线程创建的。只有主线程才能修改界面。
哪位大虾能给与帮助,感激不尽。
...全文
220 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kokonol 2006-05-29
  • 打赏
  • 举报
回复
SWT会自动创建一个用户界面线程
非用户界面线程不能直接操作用户界面线程
Kokonol 2006-05-29
  • 打赏
  • 举报
回复

if (!this.display.isDisposed()) {
Runnable runnable = new Runnable() {
public void run() {
// 你改界面的代码
}
};
display.syncExec(runnable); // 关键在这一句上
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧