Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java GUI 设计 » SWT  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 多线程怎么访问SWT
Sunteya





发贴: 22
积分: 0
于 2005-04-05 12:14 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
在多线程的SWT程序中,线程为什么不能访问SWT控件呢?
下面的代码运行的话会抛出org.eclipse.swt.SWTException: Invalid thread access
要怎么样做 才可以使 多线程可以访问呢?
而没有多线程的话,界面就会失去响应。


import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class Test {

  public static void main(String[] args) {
    Display display = Display.getDefault();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    final Text t = new Text(shell, SWT.BORDER | SWT.CENTER);

    new Thread(new Runnable() {
      public void run() {
        int i = 0;
        while (true) {
          i++;
          t.setText(String.valueOf(i));
          try {
            Thread.sleep(1000);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
        }
      }
    }).start();

    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
  }
}





初学者与<书>

话题树型展开
人气 标题 作者 字数 发贴时间
7029 多线程怎么访问SWT Sunteya 998 2005-04-05 12:14
4897 Re:多线程怎么访问SWT cnfree 173 2005-04-05 14:01
4787 Re:多线程怎么访问SWT Sunteya 20 2005-04-05 14:08
5173 Re:多线程怎么访问SWT Yanjm 143 2005-04-05 17:40
5097 Re:多线程怎么访问SWT Sunteya 260 2005-04-05 21:03

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923