java事件教程
『壹』 java中事件,事件源和事件監聽器概念,使用事件監聽器驚醒事件處理的過程
事件:當用戶在界面上執行一個操作,例如按下鍵盤、拖動或者單擊滑鼠時,都將產生一個事件。Java中事件是用來描述不同類型用戶操作的對象,Java中有很多不同類型的事件。例如:單擊,雙擊,右擊,拖動,鍵盤的按下、釋放,文本域內容改變等。
事件源:產生事件的組件就是一個事件源。例如,當在一個Button上單擊滑鼠是,將產生一個ActionEvent類型的事件,而這個Button就是事件源
事件監聽器:就是調用事件處理方法的對象。當界面操作事件產生並被發送到產生事件的組件時,該組件將把事件發送給能接受和處理該事件的監聽器。
『貳』 java 自定義事件的觸發及監聽
JAVA事件響應機制
1,先自定義一個事件
public class MyEvent extends java.util.EventObject{
public MyEvent(Object source)
{
super(source);
}
}
2,再自定義一個監聽器
public class MyListener implements java.util.EventListener{
//這里是當事件發生後的響應過程
public void EventActivated(MyEvent me)
{
System.out.println("事件已經被觸發");
}
}
3,以下這個類為觸發事件的事件源
public class MyObject {
private Vector vectorListeners=new Vector();
public synchronized void addMyListener(MyListener ml)
{
vectorListeners.addElement(ml);
}
public synchronized void removeMyListener(MyListener ml)
{
vectorListeners.removeElement(ml);
}
protected void activateMyEvent()
{
Vector tempVector=null;
MyEvent e=new MyEvent(this);
synchronized(this)
{
tempVector=(Vector)vectorListeners.clone();
for(int i=0;i<tempVector.size();i++)
{
MyListener ml=(MyListener)tempVector.elementAt(i);
ml.EventActivated(e);
}
}
}
//定義一個公用方法用於觸發事件
public void test()
{
activateMyEvent();
}
}
4,測試類
public class Test {
public static void main(String[] args)
{
MyObject mo=new MyObject();
//注冊該事件
mo.addMyListener(new MyListener());
//觸發該事件
mo.test();
}
}
『叄』 java的事件處理是什麼
打個比方:如果用戶用滑鼠單擊了按鈕對象button,則該按鈕button就是事件源,而java運行時系統會生成ActionEvent類的對象actionE,該對象中描述了該單擊事件發生時的一些信息,然後,事件處理者對象將接收由java運行時系統傳遞過來的事件對象actionE並進行相應的處理。
由於同一個事件源上可能發生多種事件,因此java採取了授權處理機制,事件源可以把在其自身所有可能發生的事件分別授權給不同的事件處理者來處理。比如在Canvas對象上既可能發生滑鼠事件,也可能發生鍵盤事件,該Canvas對象就可以授權給事件處理者一來處理滑鼠事件,同時授權給事件處理者二來處理鍵盤事件。有時也將事件處理者稱為監聽器,主要原因也在於監聽器時刻監聽著事件源上所有發生的事件類型,一旦該事件類型與自己所負責處理的事件類型一致,就馬上進行處理。授權模型把事件的處理委託給外部的處理實體進行處理,實現了將事件源和監聽器分開的機制。事件處理者(監聽器)通常是一個類,該類如果要能夠處理某種類型的事件,就必須實現與該事件類型相對的介面。例如例5.9中類ButtonHandler之所以能夠處理ActionEvent事件,原因在於它實現了與ActionEvent事件對應的介面ActionListener。每個事件類都有一個與之相對應的介面。將事件源對象和事件處理器(事件監聽器)分開。
使用授權處理模型進行事件處理的一般方法歸納如下:
1.對於某種類型的事件XXXEvent, 要想接收並處理這類事件,必須定義相應的事件監聽器類,該類需要實現與該事件相對應的介面XXXListener;
2.事件源實例化以後,必須進行授權,注冊該類事件的監聽器,使用addXXXListener(XXXListener ) 方法來注冊監聽器。
這是我的一點個人見解,希望對你有幫助,加油。