《Java核心技术 卷I》图形界面事件处理适配器类
适配器类
并不是所有的事件处理都像按钮点击那样简单,假设你想监视用户何时想要关闭主窗体,可能希望弹出一个对话框,只有在用户确认之后才退出程序。当程序试图关闭一个窗口时,JFrame对象就是WindowEvent的事件源,如果希望捕获这个事件,就必须有一个合适的监听器对象,并将它添加到窗体的窗口监听器列表中。
WindowListener listener = ...;
frame.addWindowListener(listener);
窗口监听器必须是实现WindowListener接口的类的一个对象,完整接口如下:
package java.awt.event;
import java.util.EventListener;
public interface WindowListener extends EventListener {
public void windowOpened(WindowEvent e);
public void windowClosing(WindowEvent e);
public void windowClosed(WindowEvent e);
public void windowIconified(WindowEvent e);//最小化
public void windowDeiconified(WindowEvent e);
public void windowActivated(WindowEvent e);
public void windowDeactivated(WindowEvent e);
}
每个含有多个方法的AWT监听器接口都配有一个适配器(adapter)类,这个实现了接口中所有方法,但是不做任何事情,真正的类可以继承这个类重写任何一个方法而不用实现接口以及接口中的方法,上面的接口的适配器类是WindowAdapter。
下面来定义一个窗口监听器,覆盖windowClosing方法:
@Override
public void windowClosing(WindowEvent e) {
if(true) {
System.exit(0);
}
}
java.awt.event.WindowListener 1.1
- void windowOpened(WindowEvent e),窗口打开后调用这个方法。
- void windowClosing(WindowEvent e),在用户发出一个窗口管理器命令要关闭窗口时调用这个方法,需要注意的是,仅当调用hide或dispose方法后窗口才能够关闭。
- void windowClosed(WindowEvent e),窗口关闭后调用这个方法。
- void windowIconified(WindowEvent e),窗口最小化后调用这个方法。
- void windowDeiconified(WindowEvent e),窗口取消最小化后调用这个方法。
- void windowActivated(WindowEvent e),激活窗口后调用这个方法,只有窗体或对话框可以被激活,通常窗口管理器会对活动窗口进行修饰,比如,高亮显示标题栏。
- void windowDeactivated(WindowEvent e),窗口变为未激活状态后调用这个方法。
java.awt.event.WindowStateListener 1.4
- void windowStateChanged(WindowEvent event),窗口被最大化、最小化或恢复为正常大小时调用这个方法。