黑马程序员技术交流社区
标题:
窗体事件问题
[打印本页]
作者:
盛亚昆
时间:
2012-3-26 22:33
标题:
窗体事件问题
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啊????高手指点
}
}
作者:
anyanyhai
时间:
2012-3-26 22:47
System.exit(0);是正常结束程序
System.exit(1);是异常关闭程序
作者:
贠(yun)靖
时间:
2012-3-27 05:34
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-27 09:35
谢谢 指点
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2