java事件處理模型知識點(diǎn)總結(jié)
我們在上手一個新項(xiàng)目時,對于陌生的環(huán)境不適用難免會出現(xiàn)一些錯誤,這時候就需要有經(jīng)驗(yàn)的人來幫忙。java中的事件處理模型就類似這樣的原理,分為三類對象,在特定的環(huán)境下,由監(jiān)聽器對事件源進(jìn)行監(jiān)督。下面我們就java事件處理模型的基本原理、三類對象、實(shí)例分別進(jìn)行學(xué)習(xí)。
1.基本原理
每個事件源可以發(fā)出若干種不同類型的事件。在程序中為每個事件源指定一個或者多個監(jiān)聽者,它可以對某種事件進(jìn)行監(jiān)聽。如果某種事件發(fā)生,就調(diào)用相應(yīng)監(jiān)聽者中的方法。
2.三類對象
(1)Event Source(事件源):事件發(fā)生的場所,通常就是各個組件,如按鈕,窗口;
(2)Event(事件):事件封裝了界面組件上發(fā)生的特定事情。
(3)Event Listener(事件監(jiān)聽器):負(fù)責(zé)監(jiān)聽事件源所發(fā)生的事件,并對各種事件做出相應(yīng)的響應(yīng)。
3.實(shí)例
package Swing;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Event_Exam extends JFrame implements ActionListener {
static Event_Exam mainJFrame=new Event_Exam();
static JLabel labl1,labl2;
static JLabel showlb1=new JLabel("0");
static JLabel showlb2=new JLabel("0.0");
static JTextField text1,text2;
public static void main(String[] args) {
// TODO Auto-generated method stub
mainJFrame.setTitle("操作事件示例!");
mainJFrame.setSize(200, 160);
Container container=mainJFrame.getContentPane();
container.setLayout(new FlowLayout());
labl1=new JLabel("輸入整數(shù)型:");
container.add(labl1);
text1=new JTextField("0",10);
text1.addActionListener(mainJFrame);//把監(jiān)聽者mainJFrame向事件源text1注冊
container.add(text1);
labl2=new JLabel("輸入浮點(diǎn)數(shù):");
container.add(labl2);
text2=new JTextField("0.0",10);
text2.addActionListener(mainJFrame);//把監(jiān)聽者mainJFrame向事件源text2注冊
container.add(text2);
showlb1.setForeground(Color.blue);
showlb1.setHorizontalTextPosition(SwingConstants.LEFT);
showlb2.setForeground(Color.green);
showlb2.setHorizontalTextPosition(SwingConstants.LEFT);
container.add(showlb1);
container.add(showlb2);
mainJFrame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {//事件發(fā)生時的處理操作
//提取文本框內(nèi)容并顯示在showlb1、showlb2中
showlb1.setText("整數(shù)為"+text1.getText());
showlb2.setText("浮點(diǎn)數(shù)為"+text2.getText());
}
}
java的事件模型知識點(diǎn)擴(kuò)展:
事件模型
首先你得有個事主兒(事件源),啥時候做個事通知我下,我好處理,OK,在我這注個冊吧,有事告你聲,你好處理,事情來了,調(diào)用準(zhǔn)備好的方法XX。。。
事件源 ---發(fā)生事件的對象
事件--- 發(fā)生了什么事 eg :MouseEvent KeyEvent actionEvent等等
監(jiān)聽器 -- 監(jiān)聽某component的某個事件 一般有實(shí)現(xiàn)某種監(jiān)聽器的類的對象來監(jiān)聽 一般把事件源對象的具體信息封裝到e(監(jiān)聽器的方法參數(shù)里 XXEvent e)
注冊 -- addXXListener(XXListener) component的addXXListener(實(shí)現(xiàn)XX監(jiān)聽器的對象) 監(jiān)聽誰,登個記,注意這個事組件的addXXListener方法
回調(diào)方法 -- 預(yù)先準(zhǔn)備好了,如果你xx,我就調(diào)用之前準(zhǔn)備好的事件處理程序XX
到此這篇關(guān)于java事件處理模型知識點(diǎn)總結(jié)的文章就介紹到這了,更多相關(guān)java事件處理模型是什么內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Java線程池如何實(shí)現(xiàn)優(yōu)雅退出
這篇文章我們將從源碼角度深度解析線程池是如何優(yōu)雅的退出程序的,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)java線程池有一定幫助,需要的可以參考一下2022-07-07
如何把spring boot應(yīng)用發(fā)布到Harbor
這篇文章主要介紹了如何把spring boot應(yīng)用發(fā)布到Harbor,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
Spring啟動后獲取所有擁有特定注解的Bean實(shí)例代碼
這篇文章主要介紹了Spring啟動后獲取所有擁有特定注解的Bean實(shí)例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02
詳細(xì)總結(jié)各種排序算法(Java實(shí)現(xiàn))
下面小編就為大家?guī)硪黄敿?xì)總結(jié)各種排序算法(Java實(shí)現(xiàn))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
SpringCloud項(xiàng)目的log4j2漏洞解決方案詳解流程
很多小伙伴因?yàn)長og4j2的驚爆0Day漏洞一時束手無策,這里提供最終解決方案可以進(jìn)行一個版本號的升級,感興趣的朋友來看看吧2022-04-04
Java多線程編程之讀寫鎖ReadWriteLock用法實(shí)例
這篇文章主要介紹了Java多線程編程之讀寫鎖ReadWriteLock用法實(shí)例,本文直接給出編碼實(shí)例,需要的朋友可以參考下2015-05-05

