当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

新的事件模子(java)[Java编程]

赞助商链接



  本文“新的事件模子(java)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在新的事件模子的组件可以开始一个事件.每种范例的事件被一个个别的类所描绘.当事件开始后,它受理一个或更多事件指明“接纳器”.因此,事件源和处理事件的地址可以被别离.
每个事件接纳器都是履行特定的接纳器范例接口的类对象.因此作为一个程序开辟者,我们所要做的是成立接纳器对象并且在被激活事件的组件中举行注册.event-firing组件调用一个addXXXListener()办法来完成注册,以描写XXX事件范例承受.我们可以简单地理解到以addListened名的办法告诉我们任何的事件范例都可以被处理,假如我们试图接纳事件我们会发现编译时我们的错误.Java Beans一样利用这种addListener名的办法去判断那一个程序可以运行.
我们全部的事件逻辑将装入到一个接纳器类中.当我们成立一个接纳器类时唯一的一点限制是必须履行专用的接口.我们可以成立一个全局接纳器类,这种情形在内部类中有助于被很好地利用,不但仅是因为它们供应了一个理论上的接纳器类组到它们服务的UI或业务逻辑类中,但因为(正像我们将会在本章背面看到的)事实是一个内部类保持一个句柄到它的父对象,供应了一个很好的通过类和子系统边界的调用办法.
一个简单的例子将使这一切变得清楚明确.同时考虑本章前部Button2.java例子与这个例子的差别.
//: Button2New.java
// Capturing button presses
import java.awt.*;
import java.awt.event.*; // Must add this
import java.applet.*;

public class Button2New extends Applet {
  Button
    b1 = new Button("Button 1"),
    b2 = new Button("Button 2");
  public void init() {
    b1.addActionListener(new B1());
    b2.addActionListener(new B2());
    add(b1);
    add(b2);
  }
  class B1 implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      getAppletContext().showStatus("Button 1");
    }
  }
  class B2 implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      getAppletContext().showStatus("Button 2");
    }
  }
  /* The old way:
  public boolean action(Event evt, Object arg) {
    if(evt.target.equals(b1))
      getAppletContext().showStatus("Button 1");
    else if(evt.target.equals(b2))
      getAppletContext().showStatus("Button 2");
    // Let the base class handle it:
    else 
      return super.action(evt, arg);
    return true; // We've handled it here
  }
  */
} ///:~
我们可对比两种办法,老的代码在左面作为注解.在init()办法里,只有一个改变就是增添了下面的两行:
b1.addActionListener(new B1());
b2.addActionListener(new B2());
按钮按下时,addActionListener()告诉按钮对象被激活.B1和B2类都是履行接口ActionListener的内部类.这个接口包含一个单一的办法actionPerformed()(这意味着当事件激活时,这个行动将被履行).注意actionPreformed()办法不是一个普通事件,说得更得当些是一个特别范例的事件,ActionEvent.假如我们想提取特别ActionEvent的信息,因此我们不需求成心去测试和下溯造型自变量.
对编程者来说一个最好的事就是actionPerformed()非常的简单易用.它是一个可以调用的办法.同老的action()办法对比,老的办法我们必须指动身生了什么和得当的行动,一样,我们会耽忧调用底子类action()的版本并且返回一个值去指明能否被处理.在新的事件模子中,我们知道全部事件测试推理自动举行,因此我们没必要指动身生了什么;我们方才表示发生了什么,它就自动地完成了.假如我们还没有提出用新的办法覆盖老的办法,我们会很快提出.
  以上是“新的事件模子(java)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 新的事件模子(java)
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .