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);// 表示程序正常终止
}
} |