Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 在SWT中,是否可以区分由用户交互和代码引起的事件?_Events_Swt_Jruby - Fatal编程技术网

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

Events 在SWT中,是否可以区分由用户交互和代码引起的事件?,events,swt,jruby,Events,Swt,Jruby,这个例子使用的是JRuby 例如,如果我将listener添加到如下文本小部件: 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 如果用户与小部件交互,或者我以编程方式设置小部件文本的值,

这个例子使用的是JRuby

例如,如果我将listener添加到如下文本小部件:

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
事件中没有任何东西可以告诉你事件的来源


因此,不,您无法说出事件是如何生成的。

我认为您可以获取源代码,但这只是小部件,而不是小部件的更改内容或方式。是的,您可以获取小部件,但通常也会通过编程调用进行设置。没有什么是编程调用无法设置的。