網站建設核心之事件處理基礎

2022-08-24    分類: 網站建設

對于圖形用戶界面的程序來說,事件處理是十分重要的。要想實現用戶界面,必須掌握Java事件處理的基本方法。

任何支持GUI的操作環(huán)境都要不斷地監(jiān)視敲擊鍵盤或點擊鼠標這樣的事件。操作環(huán)境將這些事件報告給正在運行的應用程序。如果有事件產生,每個應用程序將 決定如何對它們作出響應。在VisualBasic這樣的語言中,事件與代碼之間有著明確的對應關系。程序員對相關的特定事件編寫代碼,并將這些代碼放置 在過程中,通常人們將它們稱為事件過程(event procedure)。例如,有一個名為HelpButton的VisualBasic按鈕有一個與之關聯的HelpButton_Click時間過程。 這個過程中的代碼將在點擊按鈕后執(zhí)行。每個VisualBasic的GUI組件都響應一個固定的事件集,不可能改變VisualBasic組件響應的事件 集。
另一方面,如果使用像原始的C這樣的語言進行事件驅動的程序設計,那就需要編寫代碼來 不斷地檢查事件隊列,以便查詢操作環(huán)境報告的內容(通常這些代碼被放置在包含很多switch語句的循環(huán)體申)。顯然,這種方式編寫的程序可讀性很差,而 且在有些情況下,編碼的難度也非常大。它的好處在于響應的事件不受限制,而不像VisualBasic這樣的語言,將事件隊列對程序員隱藏起來。
Java程序設計環(huán)境折中了VisualBasic與原始C的事件處理方式,因此,它既有著強大的功能,又具有一定的復雜性。在AWT所知的事件范圍 內,完全可以控制事件從事件源(event source)例如,按鈕或滾動條,到事件監(jiān)聽器(event listener)的傳遞過程,并將任何對象指派給事件監(jiān)聽器。不過事實上,應該選擇一個能夠便于響應事件的對象。這種事件委托模型(event delegation model)與VisualBasic那種預定義監(jiān)聽器模型比較起來更加靈活。
事件源有一些向其注冊事件監(jiān)聽器的方法。當某個事件源產生事件時,事件源會向為事件注冊的所有事件監(jiān)聽器對象發(fā)送一個通告。
像Java這樣的面向對象語言,都將事件的相關信息封裝在一個事件對象(event object)中,在Java中,所有的事件對象都最終派生于java.util.EventObject類。當然,每個事件類型還有子類,例 如,ActionEvent和WindowEvent。
不同的事件源可以產生不同類別的事件。例如,按鈕可以發(fā)送一個ActionEvent對象,而窗扣可以發(fā)送WindowEvent對象。
綜上所述,下面給出AWT事件處理機制的概要:
監(jiān)聽器對象是一個實現了特定監(jiān)聽器接口(listener interface)的類的實例。
事件源是一個能夠注冊監(jiān)聽器對象并發(fā)送事件對象的對象。
當事件發(fā)生時,事件源將事件對象傳遞給所有注冊的監(jiān)聽器。
監(jiān)聽器對象將利用事件對象中的信息決定如何對事件做出響應。

文章標題:網站建設核心之事件處理基礎
標題URL:http://www.bm7419.com/news27/192777.html

網站建設、網絡推廣公司-創(chuàng)新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

微信小程序開發(fā)