事件监听机制的深入理解_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 事件监听机制的深入理解

事件监听机制的深入理解

 2013/9/23 0:26:26  qianjiangbing  程序员俱乐部  我要评论(0)
  • 摘要:一、我们先了解下几个概念:1.事件源2.事件3.事件监听者在弄清这些概念之前先说个故事:有一个小痞子,在马路上欺负一个小女孩,小女孩向妈妈发出求救信息,妈妈那棍子来赶跑小痞子。故事就这么简单,有人会说,这太扯淡了吧,但是我想说,这个故事可以很好的帮我们理解事件处理机制。这里小女孩就是事件源,小女孩向妈妈发出求救信息是事件,妈妈就是事件监听者。小痞子出发事件源,事件源通过事件将信息传递给事件监听者,事件监听者做出相应的反应。二、实现一个类的基本步骤:1.实现相应的接口
  • 标签:事件 理解 监听
    一、我们先了解下几个概念:
     1.事件源
     2.事件
     3.事件监听
     在弄清这些概念之前先说个故事:有一个小痞子,在马路上欺负一个小女孩,小女孩向妈妈发出求救信息,妈妈那棍子来赶跑小痞子。故事就这么简单,有人会说,这太扯淡了吧,但是我想说,这个故事可以很好的帮我们理解事件处理机制。
     这里小女孩就是事件源,小女孩向妈妈发出求救信息是事件,妈妈就是事件监听者。小痞子出发事件源,事件源通过事件将信息传递给事件监听者,事件监听者做出相应的反应。
    二、实现一个类的基本步骤:
    1.实现相应的接口(如ActionListener,KeyListener,MouseListener,WindowListener){}
    如这里的Demo9_3类实现的ActionListener接口;
   
class="java" name="code">
public class Demo9_3 extends JFrame implements ActionListener
    Dog类实现的ActionListener接口
    2.把接口处理的方法根据需要重新编写;
   
public void actionPerformed(ActionEvent e){}

    3.在事件源注册监听
   
//注册监听

jb1.addActionListener(this);
jb1.addActionListener(dog);
//指定动作指令
jb1.setActionCommand("aa");

jb2.addActionListener(this);
jb2.addActionListener(dog);
//动作指令
jb2.setActionCommand("bb");
    4.事件传递靠事件对象
    
public class Dog implements ActionListener{


@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("aa")){
System.out.println("dog知道你点击了黑的按钮");
}else if(e.getActionCommand().equals("bb")){
System.out.println("dog知道你点击了红的按钮");
}

}

}
     比如这里你可以点击黑色按钮通过dog对象触发事件,向控制台输出“dog知道你点击了黑的按钮”。
      整个源代码如下
package cn.qjb;


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

public class Demo9_3 extends JFrame implements ActionListener{
//声明
JPanel mp=null;
JButton jb1=null;
JButton jb2=null;
public static void main(String[] args) {


//实例化对象
Demo9_3 demo=new Demo9_3();

}
//构造器
public Demo9_3(){
mp=new JPanel();
jb1=new JButton("黑色");
jb2=new JButton("红色");

this.add(jb1,BorderLayout.NORTH);
mp.setBackground(Color.black);
this.add(mp);
this.add(jb2,BorderLayout.SOUTH);

//实例化一个Dog对象,一个普通的类也可以监听到
Dog dog=new Dog();
//注册监听
jb1.addActionListener(this);
jb1.addActionListener(dog);
//指定动作指令
jb1.setActionCommand("aa");

jb2.addActionListener(this);
jb2.addActionListener(dog);
//动作指令
jb2.setActionCommand("bb");
this.setSize(200, 150);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("aa")){
System.out.println("你点击了黑色按钮");
mp.setBackground(Color.black);
}else if(e.getActionCommand().equals("bb")){
System.out.println("你点击了红色按钮");
mp.setBackground(Color.red);
}

}
public class Dog implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("aa")){
System.out.println("dog知道你点击了黑的按钮");
}else if(e.getActionCommand().equals("bb")){
System.out.println("dog知道你点击了红的按钮");
}

}

}
}
     做的很简单的一个关于事件机制理解的例子,如有不足之处请谅解。欢迎指正!
    
  
上一篇: PHP加密解密-Mcrypt 下一篇: Java Serialization
发表评论
用户名: 匿名