WindowLIstener是专门处理窗体的事件监听窗口,一个窗体的所有变化,如窗口的打开、关闭等都可以使用这个接口进行监听。
实现WIndowListener:
package com.beyole.util;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class MyWindowEventHandle implements WindowListener {
@Override
public void windowOpened(WindowEvent e) {
System.out.println("windowOpened--->窗口被打开");
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("windowClosing--->窗口关闭");
}
@Override
public void windowClosed(WindowEvent e) {
System.out.println("windowClosed--->窗口被关闭");
}
@Override
public void windowIconified(WindowEvent e) {
System.out.println("windowIconified--->窗口最小化");
}
@Override
public void windowDeiconified(WindowEvent e) {
System.out.println("windowDeiconfied--->窗口从最小化恢复");
}
@Override
public void windowActivated(WindowEvent e) {
System.out.println("windowActivated--->窗口被选中");
}
@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("windowDeactivated--->取消窗口被选中");
}
}
单单只有监听器是不够的,还需要在组件使用时注册监听,这样才能处理,直接使用窗体的addWindowListener(监听对象)方法即可注册事件监听
package com.beyole.util;
import java.awt.Color;
import javax.swing.JFrame;
public class MyWindowEventFrame01 {
public static void main(String[] args) {
JFrame frame=new JFrame("Crystal");
frame.addWindowListener(new MyWindowEventHandle());
frame.setSize(300, 160);
frame.setBackground(Color.WHITE);
frame.setLocation(300, 200);
frame.setVisible(true);
}
}
程序截图:
结果截图: