import java.awt.*;//组件包
import java.awt.event.*;//(一般玩图像化界面要导两个包)事件包
public class GUI {
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.setVisible(true);
//f.addWindowListener(new MyWin());
//匿名内部类的形式。
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){//注意:windowClosing w是小写,这是方法名。
System.out.println("我关");
System.exit(0); //WindowEvent w是大写。这是类名
}
public void windowActivated(WindowEvent e){//窗体处于前置状态,每前置一次,事件处理一次。
System.out.println("我活了");
}
public void windowOpened(WindowEvent e){//窗体被打开了。
System.out.println("我被打开了");
}
});
}
}
/*
class MyWin implements windowListener{
//覆盖7个方法,可是我只用到一个关闭的动作。
//其他动作都没有用到,可以却必须复写。
}
*/
//因为windowListener的子类windowAdapter已经实现了windowListener接口。
//并覆盖了其中的所有方法,那么我只要继承自windowAdapter覆盖我需要的方法就可以,。
//class MyWin extends WindowAdapter{
// public void windowClosing(WindowEvent e){
// //System.out.println("window closing---"+e.toString());//e.toString()该事件的信息
// System.exit(0);
// }
//}
代码中红色的部分有问题,在窗体打开后,windowOpende 和 windowActivated连个事件没有被监听到,打印不出来,不知道为什么。如图所示。
|
|