java - 如何在 SWT 中触发自定义事件?

标签 java events event-handling swt

我正在 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/

相关文章:

c++ - 检查命名事件

java - Maven:库的开发和发布版本

Java-菜单在用户选择后不启动选项循环(无编译错误)

php - 在 jQuery 中绑定(bind)事件的正确方法是什么?

Java:找出哪个观察者正在监听

mysql - SQL 在开始日期、结束日期和中间的任何日期显示事件

C# - 为类的所有实例添加事件处理程序

java - Spring Cloud Dataflow 类型转换在处理器组件中不起作用?

java - 这是使用扫描仪扫描多个输入的方法吗

JavaFX - TextArea,如何仅在双击时激活文本区域?