当前位置:  技术问答>java相关

关于Explicit Event Enabling的问题?

    来源: 互联网  发布时间:2015-03-20

    本文导语:     各位大虾,我学到Event Delegation Model的时候,遇到了一个难点,即Explicit Event Enabling.   我看了书以后,个人的看法是整个模型的运作顺序是 1.组件实例激发了一个事件 2.组件实例调用了它自己的一个方法proc...

   各位大虾,我学到Event Delegation Model的时候,遇到了一个难点,即Explicit Event Enabling.
  我看了书以后,个人的看法是整个模型的运作顺序是
1.组件实例激发了一个事件
2.组件实例调用了它自己的一个方法processEvent()
3.方法processEvent()将事件委托给一个更加详细的processXXXEvent()
4.在方法processXXXEvent()中调用已经注册的监听接口的适当的事件处理方法

  不知道我的看法对不对?各位大虾请多多指教.详细的说说事件委托模型的运作原理.

  另外,我试着写了一个程序,实践一下Explicit Event Enabling,但是遇到了一个问题,就在注释的地方,请问那里应该怎么写?
import java.awt.*;
import java.awt.event.*;

public class SL275 extends Frame
{
  public static void main(String[] args)
  {
    SL275 s=new SL275();
  }
  
  public SL275()
  {
    MyBtn mbtn=new MyBtn("MyBtn");
    mbtn.addActionListener(); // ???就是这里,这句应该怎么写呢?
    add(mbtn);
    setBounds(100,100,200,200);
    setVisible(true);
  }
}


class MyBtn extends Button
{
  public MyBtn(String label)
  {
    super(label);
    enableEvents(AWTEvent.ACTION_EVENT_MASK);
  }

  public void processActionEvent(ActionEvent ae)     
  {
    super.processActionEvent(ae);
    System.out.println("Explicit Enabling Event");
  }
}

|
你所说的这个模型是java1使用的事件模型,java2中已经被淘汰了。
在使用这个模型时不用添加监听器,只需要重载对应的事件处理方法就可以了。利用事件监听器处理事件是java2中的事件处理模型,和你的方法就不一样了。
对于事件模型1,你去掉你有问题的那句话就可以,对于事件模型2,你使用下面的方法:
import java.awt.*;
import java.awt.event.*;

public class SL275 extends Frame
{
  public static void main(String[] args)
  {
    SL275 s=new SL275();
  }
  
  public SL275()
  {
    Button mbtn=new Button("MyBtn");
    mbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Explicit Enabling Event");
}
}); // ???就是这里,这句应该怎么写呢?
    add(mbtn);
    setBounds(100,100,200,200);
    setVisible(true);
  }
}

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.imageio类imagewriteparam的类成员方法: mode_explicit定义及介绍
  • 用exceed 连接linux的时候显示X connection to localhost:10.0 broken (explicit kill or server shutdown
  • solaris图形界面启动不了?X connection to igenv245:0.0 broken (explicit kill or server shutdown).
  • C++ explicit构造函数实例解析
  • C++ Explicit关键字详细解析
  • C++ explicit关键字的应用方法详细讲解
  • X connection to localhost:10.0 broken (explicit kill or server shutdown).


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3