A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 盛亚昆 中级黑马   /  2012-3-26 22:33  /  2339 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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.setVisible(true);
       
                System.out.println("Hello World!");
        }
}
class MyWin extends WindowAdapter
{
        public void windowClosing(WindowEvent e)//复制这个方法
        {
                //System.out.println("我关");
                                System.exit(0);//为什么这里面是0啊????高手指点

       
        }

}

3 个回复

正序浏览
谢谢 指点
回复 使用道具 举报
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);//  表示程序正常终止        
        }

}
回复 使用道具 举报
System.exit(0);是正常结束程序
System.exit(1);是异常关闭程序
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马