在 SWT 中,是否可以区分用户交互引起的事件与代码?

In SWT is it possible to distinguish between events caused user interaction vs code?

这个例子使用的是 JRuby。

例如,如果我将侦听器添加到这样的文本小部件:

add_modify_listener do |e|
    options = { event: e, r_value: r_value, source: self, is_interface_object: true, is_storeable: is_storeable? }
    presenter.send r_id, options
end

如果用户与小部件交互或我以编程方式设置小部件文本的值,则会调用侦听器。有什么方法可以区分这两种潜在的触发因素吗?

顺便说一句,我知道我可以监听不同的事件,即(按键事件与修改事件),所以我不是在寻找解决方法,只要它可以区分这两个触发器即可。

SWT Event 中没有任何内容可以告诉您事件的来源。

所以,不,你不知道事件是如何产生的。