導航:首頁 > 編程語言 > 什麼是事件java

什麼是事件java

發布時間:2024-03-22 10:43:26

java的事件處理是什麼

打個比方:如果用戶用滑鼠單擊了按鈕對象button,則該按鈕button就是事件源,而java運行時系統會生成ActionEvent類的對象actionE,該對象中描述了該單擊事件發生時的一些信息,然後,事件處理者對象將接收由java運行時系統傳遞過來的事件對象actionE並進行相應的處理。
由於同一個事件源上可能發生多種事件,因此java採取了授權處理機制,事件源可以把在其自身所有可能發生的事件分別授權給不同的事件處理者來處理。比如在Canvas對象上既可能發生滑鼠事件,也可能發生鍵盤事件,該Canvas對象就可以授權給事件處理者一來處理滑鼠事件,同時授權給事件處理者二來處理鍵盤事件。有時也將事件處理者稱為監聽器,主要原因也在於監聽器時刻監聽著事件源上所有發生的事件類型,一旦該事件類型與自己所負責處理的事件類型一致,就馬上進行處理。授權模型把事件的處理委託給外部的處理實體進行處理,實現了將事件源和監聽器分開的機制。事件處理者(監聽器)通常是一個類,該類如果要能夠處理某種類型的事件,就必須實現與該事件類型相對的介面。例如例5.9中類ButtonHandler之所以能夠處理ActionEvent事件,原因在於它實現了與ActionEvent事件對應的介面ActionListener。每個事件類都有一個與之相對應的介面。將事件源對象和事件處理器(事件監聽器)分開。
使用授權處理模型進行事件處理的一般方法歸納如下:
1.對於某種類型的事件XXXEvent, 要想接收並處理這類事件,必須定義相應的事件監聽器類,該類需要實現與該事件相對應的介面XXXListener;
2.事件源實例化以後,必須進行授權,注冊該類事件的監聽器,使用addXXXListener(XXXListener ) 方法來注冊監聽器。
這是我的一點個人見解,希望對你有幫助,加油。

⑵ java什麼是事件什麼是事件源

常見的事件包括 移動滑鼠 , 單雙擊滑鼠各個按鈕 ,單擊按鈕 ,在文本欄位輸入 ,在菜單中選擇菜單項 ,在組合框中選擇、單選和多選 ,拖動滾動條 ,關閉窗口.........
事件源 與用戶進行交互的GUI組件,表示事件來自於哪個組件或對象
比如要對按鈕被按下這個事件編寫處理程序,按鈕就是事件源

⑶ JAVA 什麼是事件事件是怎麼產生的

就是一個動作或指令或結果等,比如你單擊滑鼠的左鍵,按下回車鍵,敲進一個字元等都是一個事件。

⑷ Java給按鈕添加事件

贊一個, 提前學習, 做好預先 , 是個好習慣.

事件:用戶對組件的一個操作,稱之為一個事件;

事件源:發生事件的組件就是事件源;

事件處理器:負責處理事件的方法;

比如 點擊按鈕,彈出HelloWord,

那麼 事件是 點擊按鈕 ,事件源就是按鈕,事件處理器就會彈出對話框,顯示HelloWord.

滑鼠事件(MouseEvent:滑鼠按下,移入,移除,滾輪..)

鍵盤事件(KeyEvent:鍵盤按下,釋放..)

動作事件(ActionEvent:當按鈕、菜單項被點擊,在JTextField中按Enter鍵時...觸發該事件。)

比如ActionEvent 那麼他的接收器是ActionListener

KeyEvent 那麼他的接收器就是KeyListener

基礎知識,大概就是這些.

所以想要JButton產生交互,你就需要給他添加事件處理器,當發生這些事件時,出發該處理器,進行處理.

寫2個例子,第一個簡單的:點擊按鈕,彈出Hello World

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//AddFrame繼承自JFrame類,並且實現了ActionListener介面
{
//組件
JTextFieldjtf1,jtf2,jtf3;//文本框,用於:顯示數字
JButtonjbAdd;//按鈕,用於:當點擊按鈕時,計算出加法的結果
JButtonjbClear;//按鈕,用於,清空數字
publicAddFrame(){//構造方法
//初始化組件
jtf1=newJTextField(5);//長度為5的文本框
JLabeljl=newJLabel("+");//文字標簽
jtf2=newJTextField(5);
jtf3=newJTextField(6);
jtf3.setEditable(false);
jbAdd=newJButton("=");
jbAdd.addActionListener(this);//因為本類已經實現了ActionListener介面,所以添加事件的接收器就是自己(this)
jbClear=newJButton("清除");
jbClear.addActionListener(this);

//把組件,添加到窗體
add(jtf1);
add(jl);
add(jtf2);
add(jbAdd);
add(jtf3);
add(jbClear);

//窗體屬性的設置
setLayout(newFlowLayout());//窗體流式布局,按添加順序從左到右排列組件
setSize(380,100);//寬380像素,高100
setLocationRelativeTo(null);//窗體放在顯示器中間
setTitle("加法計算器");//窗體的標題
setDefaultCloseOperation(EXIT_ON_CLOSE);//點擊窗體右上角的關閉按鈕時,結束程序
setVisible(true);//窗體可見
}
/*
*實現ActionListener介面就必須重寫actionPerformed方法
*/
@Override
publicvoidactionPerformed(ActionEvente){//當事件產生後,就會執行actionPerformed里的方法
JButtonjbTemp=(JButton)e.getSource();//得到事件源

if(jbTemp==jbAdd){//如果是從jbAdd產生的事件.那麼執行加法操作
//因為是簡單案例,就不判斷和處理,用戶亂輸入字母漢字等情況,導致的異常了
intx=Integer.parseInt(jtf1.getText());//從文本框1得到字元串,並轉化成數字
inty=Integer.parseInt(jtf2.getText());
jtf3.setText(x+y+"");//計算2個數的和,並顯示在文本框3上

}elseif(jbTemp==jbClear){//如果事件源是jbClear,那麼清除文本框的文字

jtf1.setText("");
jtf2.setText("");
jtf3.setText("");
}

}
//main方法
publicstaticvoidmain(String[]args){
newAddFrame();//創建一個AddFrame的實例
}
}

⑸ 什麼是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);
}
}
}
}

⑹ java中事件,事件源和事件監聽器概念,使用事件監聽器驚醒事件處理的過程

  1. 事件:當用戶在界面上執行一個操作,例如按下鍵盤、拖動或者單擊滑鼠時,都將產生一個事件。Java中事件是用來描述不同類型用戶操作的對象,Java中有很多不同類型的事件。例如:單擊,雙擊,右擊,拖動,鍵盤的按下、釋放,文本域內容改變等。

  2. 事件源:產生事件的組件就是一個事件源。例如,當在一個Button上單擊滑鼠是,將產生一個ActionEvent類型的事件,而這個Button就是事件源

  3. 事件監聽器:就是調用事件處理方法的對象。當界面操作事件產生並被發送到產生事件的組件時,該組件將把事件發送給能接受和處理該事件的監聽器。

⑺ 1.java的事件處理機制是怎樣的

java事件處理機制你必須得明確以下幾個概念:
核心:java採用的是事件源——事件監聽器模型
1:事件(event):是指一個狀態的改變,或者一個活動的發生。例如,簡單常見的是單擊一個按鈕,或者輸入一個按鍵都是一個事件。
2:事件源(event source):能夠產生事件的對象稱為事件源,如文本框,按鈕,下拉列表等。
3:事件監聽器(event listener):需要一個對象對事件源進行監聽,以便對發生的事件做出處理,該對象就是事件監聽器。事件源通過調用相應的方法將某個對象作為自己的監聽器。無論應用程序還是小程序都採用這一機制。
例,對於按鈕,注冊監聽器的方法是 addActionListener(監視器);:
4: 事件源獲得監聽器之後,相應的操作就會導致事件的發生,並通知監聽器,監聽器就會做出相應的處理。
5:處理事件的介面:監聽器負責處理事件源發生的事件。為了處理事件源發生的事件,監聽器會自動調用一個方法來處理事件,該方法定義在相應事件的介面中。

⑻ 簡述java語言的事件處理機制,事件處理的3要素是什麼.

(1)事件源 事件源是一個事件的產生者,如按鈕、窗口及文本域等。
(2)事件類型 Java中所有的事件都封裝成一個類,這些事件類被集中在java.awt.event包,所有的事件類均繼承了AWTEvent類和一個方法——getSouce()方法,該方法返回發生事件的對象。
(3)事件監聽器 不同的類型事件發生後,由事件監聽器接收事件並調用相應的事件處理方法。所有的事件監聽器實際上都是一個java.awt.event包中的介面,引入了java.util.EventListener介面。不同事件類型的監聽器具有不同的方法。

⑼ 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相關的資料

熱點內容
哈曼l7功放編程 瀏覽:216
體溫單片機 瀏覽:611
快捷鍵命令不能用了 瀏覽:344
邊界層加密網格優點 瀏覽:234
linuxvi保存文件 瀏覽:533
把視頻打包出文件夾是什麼意思 瀏覽:443
如何在藏書館app上注銷賬號 瀏覽:823
51單片機架構 瀏覽:895
安卓下載東西怎麼弄 瀏覽:520
我的世界伺服器地址13 瀏覽:309
機修編程原理 瀏覽:720
手機點開app反應慢是哪裡的問題 瀏覽:772
數控銑床g代碼編程圖案 瀏覽:129
lan是指什麼伺服器 瀏覽:769
php匹配手機號 瀏覽:444
火狐app攔截窗口如何解除 瀏覽:904
javaapichm下載 瀏覽:163
如何用代理伺服器玩cf 瀏覽:1000
java對象轉jsonobject 瀏覽:372
怎麼刪除app里的更新提示 瀏覽:424