事件监听学习笔记

来源:互联网 发布:轻而易举软件培训视频 编辑:程序博客网 时间:2024/05/21 19:28

本次课程笔记主要记载事件处理的相关内容


事件源一个产生事件的对象,当这个源对象的某些状态以某种方式发生变化时,就会发生某种类型的事件(一个事件源可能

            会生成多个不同类型的事件)。如果某个对象(事件监听者)希望得到事件源产生的事件就需要在这个事件源上注册。

事件: 承载事件源状态改变时的信息对象。用户与GUI组件进行交互时就会发生事件

     比如当鼠标在面板中移动时,就会生成一个鼠标移动事件的对象,而这个对象保存着当前鼠标在面板中位置信息

事件监听者: 实际上就是一个类,该类实现了某个事件监听器借口,不同的事件监听器接口可以监听不同的事件一个类可以实现一 

             个事件监听接口,也可以实现多个监听接口

--------------------------------------------------------------------------------------无耻的分割线-------------------------------------------------------------------------------

 补充:事件可以是鼠标事件、键盘事件、触摸事件或者鼠标移动事件等;事件源就是产生事件的组件,事件监听器就是事件源产生

            事件时响应的接口

 举个-

        例子1:轿车剧烈震动时会自动报警(在开启报警的情况下),在这里事件源就是车子,因为是车子产生震动的,所以事件是震动  

                      (或者说是报警事件),事件监听器是报警器。

        例子2:按钮被我按下了,在这里我是属于外界,是我促使干预了按钮才让按钮产生了click事件,所以按钮是事件源,click是

                     ,下面哪个接口响应了就是事件监听器。监听器类(Onclick)一般系统都自带了,如果要用的话implements一下就行。

   谁直接产生事件谁就是事件源,而对本次事件产生反应的就是事件监听器 。

  下面是事件源、事件、事件监听器之间的关系。

事件处理步骤

① 创建事件监听器。

② 给事件源注册事件监听器。

③ 在事件处理方法中做自己要做的事。


import java.awt.*;import javax.swing.*;import java.awt.event.*;//类Demo_7事件监听者  实现事件监听接口ActionListenerpublic class Demo_7 extends JFrame implements ActionListener{JPanel pl;JButton jb1,jb2;public static void main(String[] args) {new Demo_7();}public Demo_7(){Dog dog = new Dog();pl = new JPanel();//背景色默认是黑色pl.setBackground(Color.black);jb1 = new JButton("蓝色");jb2 = new JButton("黄色");/* * 注册监听   * 个人理解:注册监听有点像导线,一根连着事件源与事件监听者 */jb1.addActionListener(this);jb1.addActionListener(dog);jb2.addActionListener(this);jb2.addActionListener(dog);//指定action命令jb1.setActionCommand("蓝色");jb2.setActionCommand("黄色");this.add(pl);this.add(pl);this.add(jb1,BorderLayout.NORTH);this.add(jb2,BorderLayout.SOUTH);this.setTitle("事件监听测试");this.setSize(200,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("黄色")){pl.setBackground(Color.yellow);}if(e.getActionCommand().equals("蓝色")){    pl.setBackground(Color.blue);}}}//类Dog可以作为事件监听者实现事件监听接口  ActionListener class Dog implements ActionListener{/** *  * 实现监听器接口中的事件处理方法   */public void actionPerformed(ActionEvent e) {if(e.getActionCommand().equals("黄色")){System.out.println("狗:你点了黄色");}if(e.getActionCommand().equals("蓝色")){    System.out.println("狗: 你点了蓝色");}}}


运行程序后出现  面板默认是黑色的

 

点击按钮(蓝色)    面板变成蓝色 与此同时 控制台打印了一句话:   狗:你点了蓝色