窗口监听
以下代码给Frame界面增加了关闭窗口的功能:
package com.cxf.gui;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Demo4 {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setBounds(400, 400, 400, 400);
frame.setVisible(true);
frame.setBackground(Color.cyan);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e){
System.exit(0);
}
});
}
}
输出结果:
用鼠标单击右上角叉号可以关闭窗口。
这种效果并不是Frame界面自带的,需要我们添加窗口监听,具体代码在第15-19行。
实际上第15-19行有4行,却只是一句话,句尾分号在第19行。
第15行调用方法addWindowListener,参数为继承了WindowAdapter的子类对象,这个对象的描述足足跨越了4行。
第16-17行重写WindowAdapter的方法windowClosing,原本windowClosing的方法体为空,现在添加system.exit,即退出。
再回顾一遍,第15行方法的参数是WindowAdapter的子类对象,它没有名字,WindowAdapter()后面中括号里面的内容对WindowAdapter进行方法重写,于是WindowAdapter(){方法重写}这个整体就成为WindowAdapter的子对象,要使用的时候在前面加上new就造出了这个子对象。