Java开发中的事件驱动模型实例详解

豆豆网   技术应用频道   2007年09月18日  【字号: 收藏本文

内容摘要:在Java编程技术中,最常用的可视化编程当属Java Swing技术,Java Swing为开发者提供了很多现成的组件,如:按钮(JButton),单选按钮(JRadioButton)等。为了管理用户与组成程序图形用户界面的组件间的交互,必须理解在Java中如何处理事件。

  仅仅实现侦听器接口还不足以将侦听器对象连接到事件源上,仍需要把侦听器与希望处理的事件单个源或多个源连接起来。通过调用事件源对象的特定方法,可以注册带有事件源的侦听器对象。例如,为了注册侦听单击按钮事件的侦听器,需要调用JButton对象的addActionListener()方法,该操作可以使侦听对象和事件源绑定。

  每个事件响应时只涉及到对该事件感兴趣的侦听器。由于侦听器只要求实现一个合适的接口,所以实际上,可以在任何希望的地方接收和处理事件。在Java中使用侦听器对象处理事件的方式,称为委托事件模型,这是因为对于诸如按钮这种组件引起的事件响应,并不是由引起事件的对象本身处理,而是委托独立的侦听器对象进行处理,刚才的actionPerformed()其实就是一个委托处理方法。现在让我们来看一下,JButton是如何将用户的点击转化成方法处理的(如图1-2)。

  图1-2

  Java开发中的事件驱动模型实例详解

  JButton组件初始化代码片断:

  private void initialize() {
    frame = new JFrame();
    frame.getContentPane ().setLayout (null);
    frame.setBounds (100, 100, 247, 165);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setTitle ("事件驱动程序");
    //btnPress就是这次点击操作中的事件源
    btnPress = new JButton();
    btnPress.setText ("Press");
    btnPress.setName ("Press");
    btnPress.setBounds (63, 98, 99, 23);
    //向事件源btnPress植入侦听器对象ButtonEventHandler
    btnPress.addActionListener (new ButtonEventHandler(this));
    frame.getContentPane ().add(btnPress);
    frame.getContentPane ().add(txtMessage);
  }

作者:陈宇    责编:豆豆技术应用

正在加载评论...