事件java
『壹』 java的事件處理是什麼
打個比方:如果用戶用滑鼠單擊了按鈕對象button,則該按鈕button就是事件源,而java運行時系統會生成ActionEvent類的對象actionE,該對象中描述了該單擊事件發生時的一些信息,然後,事件處理者對象將接收由java運行時系統傳遞過來的事件對象actionE並進行相應的處理。
由於同一個事件源上可能發生多種事件,因此java採取了授權處理機制,事件源可以把在其自身所有可能發生的事件分別授權給不同的事件處理者來處理。比如在Canvas對象上既可能發生滑鼠事件,也可能發生鍵盤事件,該Canvas對象就可以授權給事件處理者一來處理滑鼠事件,同時授權給事件處理者二來處理鍵盤事件。有時也將事件處理者稱為監聽器,主要原因也在於監聽器時刻監聽著事件源上所有發生的事件類型,一旦該事件類型與自己所負責處理的事件類型一致,就馬上進行處理。授權模型把事件的處理委託給外部的處理實體進行處理,實現了將事件源和監聽器分開的機制。事件處理者(監聽器)通常是一個類,該類如果要能夠處理某種類型的事件,就必須實現與該事件類型相對的介面。例如例5.9中類ButtonHandler之所以能夠處理ActionEvent事件,原因在於它實現了與ActionEvent事件對應的介面ActionListener。每個事件類都有一個與之相對應的介面。將事件源對象和事件處理器(事件監聽器)分開。
使用授權處理模型進行事件處理的一般方法歸納如下:
1.對於某種類型的事件XXXEvent, 要想接收並處理這類事件,必須定義相應的事件監聽器類,該類需要實現與該事件相對應的介面XXXListener;
2.事件源實例化以後,必須進行授權,注冊該類事件的監聽器,使用addXXXListener(XXXListener ) 方法來注冊監聽器。
這是我的一點個人見解,希望對你有幫助,加油。
『貳』 java中的事件處理機制是怎樣的
JAVA中當事件發生時,他不會進行廣播,而是僅僅向關心此事件的對象發送消息。那麼他怎麼知道誰「關心」此事件呢。
這就要求關心此事件的對象,先行向事件的發出方進行注冊,表示我關心此事件,當事件發生時請通知我。
【簡單來說】:就是事件的「處理方」向事件的「發出方」先行注冊,當事件發生時,事件的「發生方」負責通知事件的「處理方」。
譬如我編寫一個窗口,用到了JFrame,我想實現一個功能,當按下Q鍵時,窗口關閉。
『叄』 簡述java事件處理機制
java事件處理機制你必須得明確以下幾個概念:
核心:java採用的是事件源——事件監聽器模型
1:事件(event):是指一個狀態的改變,或者一個活動的發生。例如,簡單常見的是單擊一個按鈕,或者輸入一個按鍵都是一個事件。
2:事件源(event source):能夠產生事件的對象稱為事件源,如文本框,按鈕,下拉列表等。
3:事件監聽器(event listener):需要一個對象對事件源進行監聽,以便對發生的事件做出處理,該對象就是事件監聽器。事件源通過調用相應的方法將某個對象作為自己的監聽器。無論應用程序還是小程序都採用這一機制。
例,對於按鈕,注冊監聽器的方法是 addActionListener(監視器);:
4: 事件源獲得監聽器之後,相應的操作就會導致事件的發生,並通知監聽器,監聽器就會做出相應的處理。
5:處理事件的介面:監聽器負責處理事件源發生的事件。為了處理事件源發生的事件,監聽器會自動調用一個方法來處理事件,該方法定義在相應事件的介面中。
『肆』 Java 事件處理
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//該類用了3個介面,必須實現所有方法
public class Action extends JFrame implements KeyListener,ActionListener,MouseWheelListener{
JTextArea ta;
JButton b;
JScrollPane sp;
JPanel p;
static int i = 12;
public Action(){
ta = new JTextArea("注意:滑動滾輪時此文本域里的文字大小變化(增大或減少1)");
ta.setEditable (false);//不可編輯
ta.setLineWrap (true);//自動換行
ta.setForeground (Color.BLUE);//字體顏色
sp = new JScrollPane(ta);
setFont(i);
b = new JButton("退出");
p = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p.add (b);
this.add (sp,BorderLayout.CENTER);
this.add (p,BorderLayout.SOUTH);
this.setTitle ("Java事件處理");
this.setSize (400,300);
this.setLocationRelativeTo (null);//窗口居中
this.setVisible (true);
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
ta.addKeyListener (this);
sp.addMouseWheelListener (this);
b.addActionListener (this);
}
public void setFont(int i){
ta.setFont (new Font(Font.SERIF,Font.PLAIN,i));
sp.setBorder (BorderFactory.createTitledBorder ("字體大小:"+i));
}
public static void main(String[] args){
JFrame. (true);
new Action();
}
public void keyPressed(KeyEvent e){
if(e.getKeyText(e.getKeyCode()).equals ("A")){
if(this.isVisible ()==true){
this.setVisible (false);
}else{
this.setVisible (true);
}
JFrame f = new JFrame("新窗口");
f.setBounds(400,200,300,300);
f.setVisible (true);
}
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void actionPerformed(ActionEvent e){
System.exit (0);
}
public void mouseWheelMoved(MouseWheelEvent e){
if(e.getWheelRotation ()>0) i++;//滾輪向下滾每次 +1
else i--;
setFont(i);
}
}
『伍』 java中的事件
javax.swing.JButton cannot be cast to javax.swing.JTextField
e獲取到的資源是button按鈕,不是textField文本框,轉換時就報錯了
『陸』 java什麼是事件什麼是事件源
常見的事件包括 移動滑鼠 , 單雙擊滑鼠各個按鈕 ,單擊按鈕 ,在文本欄位輸入 ,在菜單中選擇菜單項 ,在組合框中選擇、單選和多選 ,拖動滾動條 ,關閉窗口.........
事件源 與用戶進行交互的GUI組件,表示事件來自於哪個組件或對象
比如要對按鈕被按下這個事件編寫處理程序,按鈕就是事件源
『柒』 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();
}
}
『捌』 java中事件,事件源和事件監聽器概念,使用事件監聽器驚醒事件處理的過程
事件:當用戶在界面上執行一個操作,例如按下鍵盤、拖動或者單擊滑鼠時,都將產生一個事件。Java中事件是用來描述不同類型用戶操作的對象,Java中有很多不同類型的事件。例如:單擊,雙擊,右擊,拖動,鍵盤的按下、釋放,文本域內容改變等。
事件源:產生事件的組件就是一個事件源。例如,當在一個Button上單擊滑鼠是,將產生一個ActionEvent類型的事件,而這個Button就是事件源
事件監聽器:就是調用事件處理方法的對象。當界面操作事件產生並被發送到產生事件的組件時,該組件將把事件發送給能接受和處理該事件的監聽器。
『玖』 在JAVA中什麼是事件事件包括哪些內容什麼是事件監聽器
事件是可以被控制項識別的操作,如按下確定按鈕,選擇某個單選按鈕或者復選框。每一種控制項有自己可以識別的事件,如窗體的載入、單擊、雙擊等事件,編輯框(文本框)的文本改變事,等等。事件有系統事件和用戶事件。系統事件由系統激發,如時間每隔24小時,銀行儲戶的存款日期增加一天。用戶事件由用戶激發,如用戶點擊按鈕,在文本框中顯示特定的文本。事件驅動控制項執行某項功能。
事件由事件源所激發。向事件源注冊的事件偵聽器可接收有關特定事件類型的通知
『拾』 java 事件處理的幾種寫法
public class HandleEventextends JFrame{ //HandleEvent 繼承JFrame
public HandleEvent(){
add(panel); //JFrame中包含panel ,panel中包含jbtOK
OKListenerClasslistener1 = new OKListenerClass(); //實例化監聽器listener1
CanelListenerClasslistener2 = new CanelListenerClass();
jbtOK.addActionListener(listener1); //在jbtOK中添加監聽器listener1
jbtCancel.addActionListener(listener2);
}
class OKListenerClass implementsActionListener{ //OKListenerClass 實例ActionListener
public voidactionPerformed(ActionEvent e){
System.out.println("OK buttonclicked");
}
}
class CanelListenerClassimplements ActionListener{
public voidactionPerformed(ActionEvent e){
System.out.println("Canel buttonclicked");
}
}