我是java noob程序员,我遇到SWT异常问题无效的线程访问,我已经找到了,我发现当你试图对一个不是的线程的接口项进行操作时会发生这种情况UI线程。但我不知道如何解决它。
问题: 我有4节课:
问题是它因无效的线程访问而崩溃。我不知道如何显示两个swt窗口(完全不同的类)
该应用程序下载网页,解析它并获取我想要的信息。然后使用class notify 显示通知。我添加了类 Window ,它是SWT Window,它显示了托盘图标,有设置它也是主类,该类运行 ZadaneReader 线程。 第一个问题:我应该以其他方式添加SWT窗口(主要目标是:托盘图标和设置)吗?
我的应用程序包含以下类:
目前:当我不使用UniNotifyWindow 或时,它可以正常工作我没有使用Window(使用测试人员类启动Zadane线程)。
我认为这是一个愚蠢的问题而且我犯了很多错误,但我希望你不要责怪我,但如果你能告诉我我做错了什么,我会很高兴。
来源: https://docs.google.com/open?id=0B5VL4J_7HrgaTkt4a1Q2VVQxZEE
答案 0 :(得分:2)
您只能从主(也称为“显示”)线程访问SWT UI元素。这意味着您无法在另一个线程的文本框中设置文本。推动工作显示线程的最简单方法是调用
Display.getDefault().asyncExec(...)
请注意,您在显示线程中运行的内容应该是离散的 - 长时间运行的任务会使您的UI无响应。