事件监听学习笔记

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


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

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

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

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

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

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

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

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

            事件时响应的接口

 举个-

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

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

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

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

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

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

事件处理步骤

① 创建事件监听器。

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

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


import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

//类Demo_7事件监听者  实现事件监听接口ActionListener
public 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("狗: 你点了蓝色");
		}
		
	}
	
}


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

 

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

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值