黑马程序员技术交流社区

标题: 事件监听机制 [打印本页]

作者: 周洋    时间: 2012-3-28 00:41
标题: 事件监听机制
事件监听  里的   适配器的应用 没明白  高手给举例 讲下啊
作者: 贠(yun)靖    时间: 2012-3-28 00:53
class  AwtDemo2
{
        public static void main(String[] args)
        {
                Frame f=new Frame("my awt");
                f.setSize(500,400);
                f.setLocation(300,200);
                f.setLayout(new FlowLayout());

                Button b=new Button("按钮");

                f.add(b);
        
                f.addWindowListener (new MyWin());
                      f 是事件源      把事件源添加到WindowListener    相当于让事件源和事件监听者之间建立了联系  就是毕老师举的 存古董的箱子  和 保安那个例子
      放古董的箱子就是事件源  保安是监听者      而 new MyWin() 是把触发事件的那些异常动作(或者说行为)封装成对象 传递给
     public void windowClosing(WindowEvent e)  方法中的 e  所以当你触发这些动作的时候 才能调用这个方法        
  你想想  这个方法是有参数的   而你f。add事件的时候 里面new了个对象   这个对象跑那去了?     还有就是调用带参的方法时必须传个参数对吧  
  而事件监听机制 就这几句话     肯定就这么传过来了   只是比较抽象了些
               
                f.setVisible(true);
        
                System.out.println("Hello World!");
        }
}
class MyWin extends WindowAdapter
{
        public void windowClosing(WindowEvent e)//复制这个方法
        {
                //System.out.println("我关");
                                System.exit(0);//  表示程序正常终止        
        }

}
作者: 王国华    时间: 2012-3-28 15:58
简单的说,比如说你要监听window的动作,需要实现WindowListener接口,但WindowListener接口里有
很多个方法需要你覆盖,而你只需要一个动作,所以就出现了适配器,它覆盖了WindowListener接口中的
多个方法,但方法体为空,此时我们需要哪个动作,只需覆盖一个方法即可。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2