1、 Window事件:所对应的时间类为WindowEvent,所对应的事件监听接口为WindowListener、与WindowListener对应的适配器为WindowAdapter (TestWindowClose.java \ TestAnonymous2.java)
import java.awt.*;
import java.awt.event.*;
public class TestWindowClose {
public static void main(String args[]) {
new MyFrame55("MyFrame");
}
}
@SuppressWarnings("serial")
class MyFrame55 extends Frame {
MyFrame55(String s) {
super(s);
setLayout(null);
setBounds(300, 300, 400, 300);
this.setBackground(new Color(204, 204, 255));
setVisible(true);
// this.addWindowListener(new MyWindowMonitor());
//逻辑简单、代码少,且不经常变动,可以使用匿名类
this.addWindowListener(new WindowAdapter() { //方法内的类,局部类,匿名类
public void windowClosing(WindowEvent e) {//没有名字,把它当成WindowAdapter类来用
setVisible(false);
System.exit(-1);
}
});
}
/*
class MyWindowMonitor extends WindowAdapter { //内部类写法
public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(0);
}
}
*/
}
/* 范例名称:匿名类在事件处理中的使用
* 源文件名称:TestAnonymous2.java
* 要 点:
* 1. 匿名类只能是内部类
* 2. 匿名类的两种创建方式----既可以继承父类、也可以单重实现接口
*/
import java.awt.*;
import java.awt.event.*;
public class TestAnonymous2 {
Frame f = new Frame("Test"); //
TextField tf = new TextField(10);
Button b1 = new Button("Start");
public TestAnonymous2(){
f.add(b1,"North"); //添加到北边,进行布局管理
f.add(tf,"South");
b1.addActionListener(new ActionListener(){ //匿名类
private int i;
public void actionPerformed(ActionEvent e) {
tf.setText(e.getActionCommand() + ++i);
}
});
f.addWindowListener(new WindowAdapter(){ //匿名类
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
f.pack();
f.setVisible(true);
}
public static void main(String args[]) {
new TestAnonymous2();
}
}