美文网首页Java架构技术进阶
深入浅出java事件处理模型知识点总结

深入浅出java事件处理模型知识点总结

作者: 架构小菜 | 来源:发表于2021-03-05 14:53 被阅读0次

    我们在上手一个新项目时,对于陌生的环境不适用难免会出现一些错误,这时候就需要有经验的人来帮忙。java中的事件处理模型就类似这样的原理,分为三类对象,在特定的环境下,由监听器对事件源进行监督。下面我们就java事件处理模型的基本原理、三类对象、实例分别进行学习。

    1.基本原理

    每个事件源可以发出若干种不同类型的事件。在程序中为每个事件源指定一个或者多个监听者,它可以对某种事件进行监听。如果某种事件发生,就调用相应监听者中的方法。

    2.三类对象

    (1)Event Source(事件源) :事件发生的场所,通常就是各个组件,如按钮,窗口;

    (2)Event(事件) :事件封装了界面组件上发生的特定事情。

    (3)Event Listener(事件监听器) :负责监听事件源所发生的事件,并对各种事件做出相应的响应。

    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("输入整数型:");
    container.add(labl1);
    text1=new JTextField("0",10);
    text1.addActionListener(mainJFrame);//把监听者mainJFrame向事件源text1注册
    container.add(text1);
    labl2=new JLabel("输入浮点数:");
    container.add(labl2);
    text2=new JTextField("0.0",10);
    text2.addActionListener(mainJFrame);//把监听者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) {//事件发生时的处理操作
    //提取文本框内容并显示在showlb1、showlb2中
    showlb1.setText("整数为"+text1.getText());
    showlb2.setText("浮点数为"+text2.getText());
    }
    }
    

    java的事件模型知识点扩展:

    事件模型

    首先你得有个事主儿(事件源),啥时候做个事通知我下,我好处理,OK,在我这注个册吧,有事告你声,你好处理,事情来了,调用准备好的方法XX。。。

    事件源 ---发生事件的对象

    事件--- 发生了什么事 eg :MouseEvent KeyEvent actionEvent等等

    监听器 -- 监听某component的某个事件 一般有实现某种监听器的类的对象来监听 一般把事件源对象的具体信息封装到e(监听器的方法参数里 XXEvent e)

    注册 -- addXXListener(XXListener) componentaddXXListener (实现XX监听器的对象) 监听谁,登个记,注意这个事组件的addXXListener方法

    回调方法 -- 预先准备好了,如果你xx,我就调用之前准备好的事件处理程序XX

    相关文章

      网友评论

        本文标题:深入浅出java事件处理模型知识点总结

        本文链接:https://www.haomeiwen.com/subject/wlwrqltx.html