想做一个多人聊天程序,用SWT做了一个类似QQ对话框的界面,用Text这个控件来显示聊天信息。
另外做了一个类,开线程做消息监听器,当获得新的消息时调用Text.append(String)方法把新消息显示在Text上,但是抛出异常,原因是:SWTException:
ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver 
append方法只能由创建这个receiver(这里是指Text这个控件吗?)的线程来调用。但是新开线程做消息监听器是不可缺少的啊,请问我怎么才能实现想要的功能?

解决方案 »

  1.   

    把那个Text设置成静态的,然后在线程里面访问。
      

  2.   

    在Swing里面用 SwingUtilities.invokeLater(Runnable runnable), SWT里面有类似的方法,自己去查一下吧。
      

  3.   

    楼上的说的是org.eclipse.swt.accessibility ,好像不太会用啊,那位高手能给我写个例子啊?
      

  4.   

    org.eclipse.swt.accessibility 不是类似SwingUtilities.invokeLater(Runnable runnable)的东西!继续等待高手的解答!
      

  5.   

    聊天的感觉jeditorpane 还蛮好