您所在的位置:主页 > Java培训 >

Java事件处理机制相关内容介绍

时间:2014-04-18 10:44来源:未知 作者:疯狂java 点击:


  单纯的界面设计是没有使用价值的,用户之所以对图形用户界面感兴趣,主要是因为图形界面所提供的与用户交互的超强功能。在java中实现这样的功能,就需要了解事件处理机制。

  用户对组件的一个操作,称之为一个事件(Event);产生事件的组件叫做事件源(EventSource);接收、解析和处理事件,实现和用户交互的方法称之为事件处理器(Event Handler)。

  一般情况下,事件源可以产生多种不同类型的事件,因而可以注册(触发)多种不同类型的事件监听器。当某个事件源上发生了某种事件后,关联的事件监听器对象中的有关代码才会被执行,这个过程称为向事件源注册监听器。向组件(事件源)注册事件监听器后,事件监听器就与组件建立关联,当组件接受外部作用(事件)时,组件会产生一个相关的事件对象,并把这个对象传给与之关联的事件监听器,这样事件监听器就会启动并执行相关的代码处理该事件。

  事件监听器

  事件监听器是一个类,用来处理在各个组件上触发的事件。不同的事件类型需要调用不同的事件监听器。下面通过示例ActionEventTest来简单了解一下事件监听器的功能。在下面的示例中当点击【点我看看!!】按钮时,由于在该按钮上已经注册了事件监听器btn.addActionListener(new Monitor()),所以用户单击该按钮会产生一个监听事件类对象,并且会调用的处理方法来处理事件请求。

  例子:ActionEventTest.java

  import java.awt.Button;

  import java.awt.Frame;

  import java.awt.event.ActionEvent;

  import java.awt.event.ActionListener;

  public class ActionEventTest {

  public static void main(String[] args) {

  Frame frame = new Frame();

  frame.setTitle("点击事件处理");

  frame.setSize(300, 300);

  frame.setLayout(null);

  Button btn = new Button("点我看看!!");

  btn.setBounds(110, 130, 80, 30);

  //注册动作监听器

  btn.addActionListener(new Monitor());

  Button btn2 = new Button("来来");

  btn2.setBounds(110, 230, 80, 30);

  //注册动作监听器

  btn2.addActionListener(new Monitor());

  frame.add(btn);

  frame.add(btn2);

  frame.setVisible(true);

  }

  }

  //动作事件监听器实现类

  class Monitor implements ActionListener{

  /**

  * 动作处理方法

  * @param event 动作事件实例

  */

  public void actionPerformed(ActionEvent event) {

  //获取事件源

  Object obj = event.getSource();

  //向下转型

  Button btn = (Button)obj;

  System.out.println("你点击了:\"" + btn.getLabel() + "\"");

  }

  }