本文主要是介绍swt 中的事件调用机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我们在进行swt编程的时候,经常会用到ctrol控件的添加事件监听的方法(例如:button.addMouseListener(.....)),但是这些事件监听的原理是怎样的呢?
根据百度文库eclipse的界面开发可以发现:
其中消息(MSG)是Display类中的一个属性,同时它也是底层操作系统消息队列的一个句柄(操作系统指向对象内存地址的引用,它实际是一个4字节的数值)。
例如我们对自己应用程序的一个控件添加键盘监听事件,当我们按下键盘的某个键的时候,操作系统会去监听队列中找出键盘监听事件,然后Display只从队列中读取GUI事件。如果它找到了相关的事件,则将相关的事件发送给底层的shell,由shell对象决定哪个小窗口部件可以接受这个事件。窗口小部件将该事件发送给listener接口,listener接口会调用我们实际编写的方法去做我们想要达到的效果。
这篇关于swt 中的事件调用机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!