1. 程式人生 > >swt 中的事件呼叫機制

swt 中的事件呼叫機制

我們在進行swt程式設計的時候,經常會用到ctrol控制元件的新增事件監聽的方法(例如:button.addMouseListener(.....)),但是這些事件監聽的原理是怎樣的呢?


其中訊息(MSG)是Display類中的一個屬性,同時它也是底層作業系統訊息佇列的一個控制代碼(作業系統指向物件記憶體地址的引用,它實際是一個4位元組的數值)。

例如我們對自己應用程式的一個控制元件新增鍵盤監聽事件,當我們按下鍵盤的某個鍵的時候,作業系統會去監聽佇列中找出鍵盤監聽事件,然後Display只從佇列中讀取GUI事件。如果它找到了相關的事件,則將相關的事件傳送給底層的shell,由shell物件決定哪個小視窗部件可以接受這個事件。視窗小部件將該事件傳送給listener介面,listener介面會呼叫我們實際編寫的方法去做我們想要達到的效果。