我正在 swt 中构建一个应用程序,我还运行一个线程,该线程轮询数据库是否有任何更改(直接对数据库或由另一个应用程序进行)。
我能够接受更改,但现在需要告诉我的界面刷新,我尝试直接从线程调用对象刷新方法(我所做的),但我得到一个 SWTException“无效的线程访问” “
。
有没有办法在线程内创建我自己的事件,然后在发现数据库上的更改时手动触发该事件,然后由需要刷新的类拾取该更改。
我查看了 SWT 事件,但我似乎只能找到附加到小部件的事件,并且只能通过小部件本身触发......
谢谢!
最佳答案
您需要从用户界面线程更新用户界面。
一种方法是在 org.eclipse.swt.widgets.Display 类上使用以下方法之一:
Display.getDefault().syncExec( new Runnable() { ... } );
或者:
Display.getDefault().asyncExec( new Runnable() { ... } );
关于java - 如何在 SWT 中触发自定义事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999581/