1. 什麼是java的事件處理機制
JAVA中當事件發生時,他不會進行廣播,而是僅僅向關心此事件的對象發送消息。那麼他怎麼知道誰「關心」此事件呢。
這就要求關心此事件的對象,先行向事件的發出方進行注冊,表示我關心此事件,當事件發生時請通知我。
【簡單來說】:就是事件的「處理方」向事件的「發出方」先行注冊,當事件發生時,事件的「發生方」負責通知事件的「處理方」。
譬如我編寫一個窗口,用到了JFrame,我想實現一個功能,當按下Q鍵時,窗口關閉。
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
public class TestFrame extends JFrame {
private static final long serialVersionUID = 5671798241966272024L;
public static void main(String[] args) {
new TestFrame();
}
public TestFrame() {
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
addKeyListener(new MyKeyListener());// 這句話就是所謂的注冊事件。
// MyKeyListener作為事件的處理方,向事件的觸發方TestFrame進行注冊。
// 這句話的意思是說,MyKeyListener對TestFrame說,我對於你的鍵盤事件感興趣,如果有鍵盤事件請告訴我。
// 而TestFrame有一個列表保存著MyKeyListener對象的引用。當鍵盤按下時,他會列表中所有引用,調用KeyPressed方法。
// 當鍵盤松開時還會調用keyReleased方法,但是我們對於鍵盤松開不太關心,所以下面的類,我們可以只編寫KeyPressed方法。
}
private final class MyKeyListener extends KeyAdapter {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_Q) {
System.exit(0);
}
}
}
}
2. 璺奼傦細綆榪頒簨浠跺勭悊鏈哄埗銆 鏄鍏充簬java鍥懼艦鐢ㄦ埛鐣岄潰鐨勩
鍦ㄥ浘褰㈢敤鎴風晫闈涓錛
紼嬪簭鍜岀敤鎴風殑浜や簰鏄閫氳繃緇勪歡鍝嶅簲鍚勭嶄簨浠舵潵瀹炵幇鐨勩
渚嬪傦紝
鐢ㄦ埛
鍗曞嚮浜嗕竴涓鎸夐挳錛
鎰忓懗鐫鍙戠敓浜嗘寜閽鐨勫崟鍑諱簨浠訛紱
閫変腑涓嬫媺妗嗕腑鐨勪竴涓閫夐」錛
鎰忓懗鐫鍙戠敓浜
涓涓閫夐」浜嬩歡銆傚湪
Java
涓鑳戒駭鐢熶簨浠剁殑緇勪歡鍙鍋氫簨浠舵簮錛屽傛寜閽銆傚傛灉甯屾湜瀵瑰崟鍑繪寜閽浜
浠惰繘琛屽勭悊錛屽彲緇欎簨浠舵簮錛堟寜閽錛夋敞鍐屼竴涓浜嬩歡鐩戝惉鍣錛堝傚寘鍚鎸夐挳鐨勫瑰櫒錛夛紝濡傚悓絳捐浜
涓涓濮旀墭鍚堝悓錛
褰撲簨浠舵簮鍙戠敓浜嬩歡鏃訛紝
浜嬩歡鐩戝惉鍣ㄥ氨浠f浛浜嬩歡婧愬瑰彂鐢熺殑浜嬩歡榪涜屽勭悊錛
榪
灝辨槸鎵璋撶殑濮旀墭浜嬩歡澶勭悊鏈哄埗銆
3. 1.java的事件處理機制是怎樣的
java事件處理機制你必須得明確以下幾個概念:
核心:java採用的是事件源——事件監聽器模型
1:事件(event):是指一個狀態的改變,或者一個活動的發生。例如,簡單常見的是單擊一個按鈕,或者輸入一個按鍵都是一個事件。
2:事件源(event source):能夠產生事件的對象稱為事件源,如文本框,按鈕,下拉列表等。
3:事件監聽器(event listener):需要一個對象對事件源進行監聽,以便對發生的事件做出處理,該對象就是事件監聽器。事件源通過調用相應的方法將某個對象作為自己的監聽器。無論應用程序還是小程序都採用這一機制。
例,對於按鈕,注冊監聽器的方法是 addActionListener(監視器);:
4: 事件源獲得監聽器之後,相應的操作就會導致事件的發生,並通知監聽器,監聽器就會做出相應的處理。
5:處理事件的介面:監聽器負責處理事件源發生的事件。為了處理事件源發生的事件,監聽器會自動調用一個方法來處理事件,該方法定義在相應事件的介面中。
4. java中什麼是事件源,事件的處理過程是什麼
在java的圖形界面開發中,要讓圖形界面接收到用戶的操作,就要給各個組件添加事件處理機制。
事件 : 為了實現用戶對圖形界面組件的操作,定義了一些事件
滑鼠事件:單擊,雙擊,滾輪等....
鍵盤事件 按下鍵盤,松開按鍵等...
焦點事件 :焦點獲得 ,焦點失去...
窗口事件: 窗口打開,窗口關閉等....
事件源: 發聲事件的場所. 比如按鈕被點擊,那麼事件源就是按鈕
文本框獲得焦點. 那麼事件源就是文本框
窗口被關閉,那麼事件源就是窗口
事件源-----產生----->事件------>被事件監聽器發現------>進入事件處理代碼
importjava.awt.Frame;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
{//窗口就是事件源
publicDemoAction(){
this.setTitle("窗口關閉");
this.setLocation(400,200);
this.setSize(360,280);
//給窗口綁定一個事件監聽器
this.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){//事件WindowEvent
System.exit(0);//關閉窗口事件,那麼退出jvm
}
});
this.setVisible(true);
}
publicstaticvoidmain(String[]args){
newDemoAction();
}
}