若要偵聽視窗所傳送的事件,請用視窗實體登錄偵聽程式。例如,若要偵聽 closing 事件,請如下所示,以視窗登錄偵聽程式:
myWindow.addEventListener(Event.CLOSING, onClosingEvent);
傳送事件時,
target
屬性會參考視窗傳送該事件。
大部分視窗事件有兩則相關訊息。第一則訊息標示視窗變更即將發生 (且可以取消),而第二則訊息標示已發生變更。例如,當使用者按一下視窗的「關閉」按鈕時,就會傳送 closing 事件訊息。如果沒有偵聽程式取消該事件,視窗就會關閉,並傳送 close 事件給任何偵聽程式。
一般來說,警告事件 (如
closing
) 只有在使用系統顏色來觸發事件時才會傳送。例如,呼叫 window
close()
方法不會自動傳送
closing
事件,而只傳送
close
事件。但是,您可以建構 closing 事件物件,並使用 window
dispatchEvent()
方法加以傳送。
傳送 Event 物件的視窗事件如下:
事件
|
說明
|
activate
|
在視窗收到焦點時傳送。
|
deactivate
|
在視窗失去焦點時傳送。
|
closing
|
在視窗即將關閉時傳送。這只會在按下系統顏色「關閉」按鈕時自動發生,而在 Mac OS X 中,則是在叫用 Quit 命令時發生。
|
close
|
視窗已關閉時傳送。
|
傳送 NativeWindowBoundsEvent 物件的視窗事件如下:
事件
|
說明
|
moving
|
在視窗左上角變更位置之前,做為移動、調整大小或變更視窗顯示狀態的結果傳送。
|
move
|
在左上角已經變更位置之後傳送。
|
resizing
|
在視窗寬度或高度變更之前,做為調整大小或顯示狀態變更的結果傳送。
|
resize
|
在視窗已經變更大小之後傳送。
|
對於 NativeWindowBoundsEvent 事件,您可以使用
beforeBounds
和
afterBounds
屬性,判斷即將完成或已完成變更前後的視窗邊界。
傳送 NativeWindowDisplayStateEvent 物件的視窗事件如下:
事件
|
說明
|
displayStateChanging
|
在視窗顯示狀態變更之前傳送。
|
displayStateChange
|
在視窗顯示狀態已變更之後傳送。
|
對於 NativeWindowDisplayStateEvent 事件,您可以使用
beforeDisplayState
和
afterDisplayState
屬性,判斷即將變更或已完成變更前後的視窗顯示狀態。
在部分 Linux 視窗管理員中,最大化已設定最大大小的視窗時,並不會傳送顯示狀態變更事件 (視窗已設定為最大的顯示狀態,但未調整大小)。