本文目錄一覽:
- 1、Java中什麼是委託事件處理模型
- 2、java swing事件處理模型包括幾部分,分別含義和相互作用
- 3、1.java的事件處理機制是怎樣的
- 4、簡述Java事件委託模型的事件處理機制
- 5、java的事件處理是什麼?
Java中什麼是委託事件處理模型
什麼是委託事件模型
在教材上的圖中,我們可以發現,用戶通過鍵盤、鼠標等進行操縱的行為,最終都傳遞給了JVM,那麼JVM在接收到這些事件以後該如何處理呢?我們把這種處理事件的方案,稱之為事件模型。
Java中採用的是委託事件模型:jdk1.1以後,引入的一種新的事件代理模塊,通過它,事件源發出的事件被委託給(註冊了的)事件監聽器(Listener),並由它負責執行相應的響應方法。比如:病人生病請醫生。
基於這種模型,我們使用兩種類型的對象來執行事件機制,這兩種對象是:
事件源對象
事件的偵聽對象
委託事件模型的實現步驟
在java語言中委託事件模型的處理步驟如下:
1.建立事件源對象。如各種GUI的組件。
2.為事件源對象選擇合適的事件監聽器。比如事件源對象如果是「按鈕」,那麼我們能想到的發生在按鈕身上最多的,應該是單擊事件了。這時我就應該選擇鼠標單擊事件的監聽器。
3.為監聽器添加適當的處理程序。比如當按鈕單擊事件發生後,希望完成的代碼。
4.為監聽器與事件源建立聯繫。
窗體自身實現事件監聽
我們在剛才的例子中使用了兩個對象,一個是事件源對象,即JFrame窗體,另外還創建了一個監聽器對象。事實上在實際開發過程中,我們往往,將這兩個類寫在一起,就是說一個窗體類自己監聽自己的事件
其他事件監聽器接口的使用
Java支持的事件監聽器接口非常多,常見的主要有:
ActionListener 行為監聽接口
AdjustmentListener 調整監聽接口
ItemListener 選項監聽接口
TextListener 文本監聽接口
ComponentListener 組件監聽接口
KeyListener 鍵盤監聽接口
MouseListener 鼠標點擊監聽接口
MouseMotionListener 鼠標移動監聽接口
FocusListener 光標聚焦監聽接口
WindowListener 窗體監聽接口
ContainerListener 容器監聽接口
KeyListener接口與KeyAdapter類
KeyListener接口:監聽鍵盤事件。
該接口中定義了如下三個方法:
keyPressed() 鍵盤按下時觸發
keyReleased() 鍵盤釋放時觸發
keyTyped() 鍵盤單擊一次時觸發
KeyAdpeter適配器:即使我們只想使用上述三個方法中的一種,那麼我們也必須在KeyListener接口的實現類中對這三種方法進行重寫,這種方式顯然增加了很多無效代碼,我們可以使用適配器模式解決。
匿名內部類
WindowListener接口與WindowAdapter類
WindowListener接口:監聽窗體的行為。
windowListener接口常用方法:
windowActivated(WindowEvent e) 將 Window 設置為活動 Window 時 調用。
windowClosed(WindowEvent e) 因對窗口調用 dispose 而將其關閉 時調用。
windowClosing(WindowEvent e) 用戶試圖從窗口的系統菜單中關閉窗 口時調用。
windowDeactivated(WindowEvent e) 當 Window 不再是活動 Window 時調用。
windowDeiconified(WindowEvent e) 窗口從最小化狀態變為正常狀 態時調用。
windowIconified(WindowEvent e) 窗口從正常狀態變為最小化狀態 時調用。
windowOpened(WindowEvent e) 窗口首次變為可見時調用。
MouseListener接口與MouseAdapter類
MouseListener接口:監聽鼠標點擊的行為。
MouseListener接口常用方法:
mouseClicked(MouseEvent e) 鼠標按鍵在組件上單擊(按下並釋放)時調用。
mouseEntered(MouseEvent e) 鼠標進入到組件上時調用。
mouseExited(MouseEvent e) 鼠標離開組件時調用。
mousePressed(MouseEvent e) 鼠標按鍵在組件上按下時調用。
mouseReleased(MouseEvent e) 鼠標按鈕在組件上釋放時調用。
MouseMotionListener接口與MouseMotionAdapter類
MouseMotionListener接口:監聽鼠標移動的行為。
MouseMotionListener接口常用方法:
mouseDragged(MouseEvent e) 鼠標按鍵在組件上按下並拖動時調用。
mouseMoved(MouseEvent e) 鼠標按鍵在組件上移動(無按鍵按下)時調用
java swing事件處理模型包括幾部分,分別含義和相互作用
9部分,分別是
標籤 (JLabel)標籤 (JLabel)通常是用來標識另外一個組件的含義。以在標籤上顯示文字、圖象或是文字圖象的組合。
2.密碼框 (JPasswordField)
密碼框實際上是一種特殊類型的文本框,用戶可以向其中輸入文本並加以編輯。
3.菜單
菜單也是一種常用的GUI組件,菜單採用的是一種層次結構,最頂層是菜單欄(JMenuBar);
4.彈出式菜單 彈出式菜單(JPopupMenu)是一種特殊的菜單,和普通菜單的區別在於其不固定在菜單欄中,而是可以四處浮動的。
5.工具條 有些菜單選項的使用頻率較高,每次使用都要打開菜單,效率較低。為此,可以在工具條(JToolBar)中提供與這些菜單選項相對應快捷按鈕,以提高用戶的效率。工具條中通常是一些帶有圖標的按鈕,當然也可以是其它類型的GUI組件
6.對話框
對話框是用戶和應用程序進行交互(對話)的一個橋樑:對話框可以用於收集用戶的輸入數據傳遞給應用程序,或是顯示應用程序的運行信息給用戶。
7.表格 表格(JTable)也是一種常用的GUI組件,常用來顯示大量的數據。
8.樹形控件
9.JScrollbar 滾動條
1.java的事件處理機制是怎樣的
java事件處理機制你必須得明確以下幾個概念:
核心:java採用的是事件源——事件監聽器模型
1:事件(event):是指一個狀態的改變,或者一個活動的發生。例如,簡單常見的是單擊一個按鈕,或者輸入一個按鍵都是一個事件。
2:事件源(event source):能夠產生事件的對象稱為事件源,如文本框,按鈕,下拉列表等。
3:事件監聽器(event listener):需要一個對象對事件源進行監聽,以便對發生的事件做出處理,該對象就是事件監聽器。事件源通過調用相應的方法將某個對象作為自己的監聽器。無論應用程序還是小程序都採用這一機制。
例,對於按鈕,註冊監聽器的方法是 addActionListener(監視器);:
4: 事件源獲得監聽器之後,相應的操作就會導致事件的發生,並通知監聽器,監聽器就會做出相應的處理。
5:處理事件的接口:監聽器負責處理事件源發生的事件。為了處理事件源發生的事件,監聽器會自動調用一個方法來處理事件,該方法定義在相應事件的接口中。
簡述Java事件委託模型的事件處理機制
java 事件委託機制的概念,一個源產生一個事件並將它送到一個或多個監聽器那裡。在這種方案中,監聽器簡單的等待,直到它收到一個事件。一旦事件被接受,監聽器將處理這個事件,然後返
java的事件處理是什麼?
打個比方:如果用戶用鼠標單擊了按鈕對象button,則該按鈕button就是事件源,而java運行時系統會生成ActionEvent類的對象actionE,該對象中描述了該單擊事件發生時的一些信息,然後,事件處理者對象將接收由java運行時系統傳遞過來的事件對象actionE並進行相應的處理。
由於同一個事件源上可能發生多種事件,因此java採取了授權處理機制,事件源可以把在其自身所有可能發生的事件分別授權給不同的事件處理者來處理。比如在Canvas對象上既可能發生鼠標事件,也可能發生鍵盤事件,該Canvas對象就可以授權給事件處理者一來處理鼠標事件,同時授權給事件處理者二來處理鍵盤事件。有時也將事件處理者稱為監聽器,主要原因也在於監聽器時刻監聽着事件源上所有發生的事件類型,一旦該事件類型與自己所負責處理的事件類型一致,就馬上進行處理。授權模型把事件的處理委託給外部的處理實體進行處理,實現了將事件源和監聽器分開的機制。事件處理者(監聽器)通常是一個類,該類如果要能夠處理某種類型的事件,就必須實現與該事件類型相對的接口。例如例5.9中類ButtonHandler之所以能夠處理ActionEvent事件,原因在於它實現了與ActionEvent事件對應的接口ActionListener。每個事件類都有一個與之相對應的接口。將事件源對象和事件處理器(事件監聽器)分開。
使用授權處理模型進行事件處理的一般方法歸納如下:
1.對於某種類型的事件XXXEvent, 要想接收並處理這類事件,必須定義相應的事件監聽器類,該類需要實現與該事件相對應的接口XXXListener;
2.事件源實例化以後,必須進行授權,註冊該類事件的監聽器,使用addXXXListener(XXXListener ) 方法來註冊監聽器。
這是我的一點個人見解,希望對你有幫助,加油。
原創文章,作者:POIWD,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129213.html