java事件處理模型知識點總結(jié)
我們在上手一個新項目時,對于陌生的環(huán)境不適用難免會出現(xiàn)一些錯誤,這時候就需要有經(jīng)驗的人來幫忙。java中的事件處理模型就類似這樣的原理,分為三類對象,在特定的環(huán)境下,由監(jiān)聽器對事件源進(jìn)行監(jiān)督。下面我們就java事件處理模型的基本原理、三類對象、實例分別進(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.實例
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("輸入浮點數(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("浮點數(shù)為"+text2.getText());
}
}
java的事件模型知識點擴(kuò)展:
事件模型
首先你得有個事主兒(事件源),啥時候做個事通知我下,我好處理,OK,在我這注個冊吧,有事告你聲,你好處理,事情來了,調(diào)用準(zhǔn)備好的方法XX。。。
事件源 ---發(fā)生事件的對象
事件--- 發(fā)生了什么事 eg :MouseEvent KeyEvent actionEvent等等
監(jiān)聽器 -- 監(jiān)聽某component的某個事件 一般有實現(xiàn)某種監(jiān)聽器的類的對象來監(jiān)聽 一般把事件源對象的具體信息封裝到e(監(jiān)聽器的方法參數(shù)里 XXEvent e)
注冊 -- addXXListener(XXListener) component的addXXListener(實現(xiàn)XX監(jiān)聽器的對象) 監(jiān)聽誰,登個記,注意這個事組件的addXXListener方法
回調(diào)方法 -- 預(yù)先準(zhǔn)備好了,如果你xx,我就調(diào)用之前準(zhǔn)備好的事件處理程序XX
到此這篇關(guān)于java事件處理模型知識點總結(jié)的文章就介紹到這了,更多相關(guān)java事件處理模型是什么內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Javaweb 500 服務(wù)器內(nèi)部錯誤的解決
這篇文章主要介紹了Javaweb 500 服務(wù)器內(nèi)部錯誤的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
SpringMVC中@RequestMapping注解的實現(xiàn)
RequestMapping是一個用來處理請求地址映射的注解,本文主要介紹了SpringMVC中@RequestMapping注解的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01
SpringMVC?RESTFul及REST架構(gòu)風(fēng)格介紹
這篇文章主要為大家介紹了SpringMVC?RESTFul及REST架構(gòu)風(fēng)格介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
java對接webservice接口的4種方式總結(jié)
因工作需要和一個Sap相關(guān)系統(tǒng)以WebService的方式進(jìn)行接口聯(lián)調(diào),之前僅聽過這種技術(shù),但并沒有實操過,所以將本次開發(fā)進(jìn)行記錄,這篇文章主要給大家介紹了關(guān)于java對接webservice接口的4種方式,需要的朋友可以參考下2023-10-10
聊聊注解@controller@service@component@repository的區(qū)別
這篇文章主要介紹了聊聊注解@controller@service@component@repository的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
基于Spring Boot DevTools實現(xiàn)開發(fā)過程優(yōu)化
這篇文章主要介紹了基于Spring Boot DevTools實現(xiàn)開發(fā)過程優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09

