快速业务通道

Java开发中的事件驱动模型实例详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
ctionListener接口以便接收按钮事件。在侦听器接口声明的方法中,实现了接受这个事件对象并响应该事件的代码。在本例中,在事件发生时,调用了ActionListener接口中的actionPerformed()方法。每种侦听器接口都定义了特定的方法,用来接收该侦听器计划要处理的事件。

仅仅实现侦听器接口还不足以将侦听器对象连接到事件源上,仍需要把侦听器与希望处理的事件单个源或多个源连接起来。通过调用事件源对象的特定方法,可以注册带有事件源的侦听器对象。例如,为了注册侦听单击按钮事件的侦听器,需要调用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); }

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

时间:2011-03-05 陈宇

侦听器创建的代码片断:

//侦听器对象ButtonEventHandler(用来侦听按钮的点击操作)    class ButtonEventHandler implements ActionListener {      //窗体对象      private EventDemo form = null;      //通过构造体传入窗体对象,      //作用在于让侦听器对象明白事件源处于      //哪个窗体容器中      public ButtonEventHandler(EventDemo form) {        this.form = form;      }      //委托方法      public void actionPerformed(ActionEvent e) {       //该方法将会把事件的处理权交给窗体容器类的 //btnPress_Click方法处理。        this.form.btnPress_Click(e);      } }

真正的事件处理代码片断:

/** * 按钮btnPress的事件处理方法。 * * @param e 事件参数 */ private void btnPress_Click(ActionEvent e) {      String message = "你点击的按钮名叫:"        + ((JButton) e.getSource()).getName();      this.txtMessage.setText(message); }

代码工作原理:

JButton组件初始化代码片断已经明确阐述了按钮被创建后放置于窗体上,关键在于本代码片断的以下语句:

btnPress.addActionListener(new ButtonEventHandler(this));

该语句就是向事件源植入了侦听器对象ButtonEventHandler,该类实现了ActionListener结构,因此JButton类的对象btnPress这个时候已经具有了处理用户点击按钮的能力了

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号