我是java noob程序员,我有SWT异常的问题无效的线程访问,我找到了,我发现它发生在你尝试从一个线程接口项目这不是UI线程。但我不知道如何解决它。Java:无效的线程访问
问题: 我有4类:
- 通知 - 创建SWT窗口,显示通知
- 主线 - 从网上下载内容,并使用通知类显示通知
- 窗口 - 它显示托盘图标,设置,它是主类 - 它启动主线程
- 类,显示第二个swt窗口中的通知。
问题是它无效的线程访问崩溃。我不知道如何以显示两个窗口SWT(完全不同的类)
该应用程序的下载网页,分析它,并得到了我想要的信息。然后使用类通知它显示通知。我添加了类窗口这是SWT窗口,它显示托盘图标,有设置它也是主类和该类运行ZadaneReader线程。 第一个问题:应该以其他方式添加SWT窗口(主要目标是:托盘图标和设置)吗?
我的应用程序包含以下类:
- ZadaneReader - 它的下载网页,分析它,并与类通知,它显示通知
- 通知 - 该类显示了2种方式notifiations: 一)使用exec 通知发送(但它只是Ubuntu的那种方式)和b)它创建对象UniNotifyWindow是第二个显示通知的SWT窗口
- UniNotifyWindow - swt窗口显示出其自身的通知
- 窗口 - 设置,托盘图标,此刻主类,它开始它的线程和ZadaneReader螺纹
此刻:它的时候,我不使用UniNotifyWindow 或我的作品我没有使用Window(用测试者类开始Zadane线程)。
我想这是个不好的问题,我犯了很多错误,但我希望你不要责怪我,但如果你能告诉我我做错了什么,我会很高兴。
来源:https://docs.google.com/open?id=0B5VL4J_7HrgaTkt4a1Q2VVQxZEE
你能提供一个小而干净的例子吗?你知道关键字像事件调度线程:[并发在Swing](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html)和/或[SwingUtilities.invokeLater](http:/ /docs.oracle.com/javase/7/docs/api/javax/swing/SwingUtilities.html#invokeLater(java.lang.Runnable)) –