为了方面期间首先在程序的入口 建立了Frame类
Frame frame = new Frame("我的窗口");//建立窗体对象
frame.setSize(400, 300);// 窗体的尺寸
frame.setLocation(300, 200);//窗体的在父视图上显示的位置
Button button = new Button("退出");
frame.add(button);
frame.setLayout(new FlowLayout());
MyWindowListener mListener = new MyWindowListener();
frame.addWindowListener(mListener);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(" 按钮被点击 窗口即将关闭");
// TODO Auto-generated method stub
System.exit(0);
}
});
frame.setVisible(true);//设置窗体可见
在主函数中运行.
当然除此之外我还建立了MyWindowListener 类 实现了接口WindowListener
@Override
此方法主要在窗体第一次打开的时候调用
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowOpened 窗口打开");
}
@Override
窗口即将关闭的时候调用
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println(" windowClosing 窗口将要关闭 ");
Window window = e.getWindow();//得到正在显示的窗体
window.setVisible(false); // 设置窗体不可见
window.dispose();// 释放窗口
除了此种得到窗体在使其不可见的方法之外,还可以调用system.exit(0)代码终结整个程序的运行
}
@Override
当窗体从屏幕上完全消失的时候调用
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowClosed 窗口已经关闭 ");
}
@Override
窗体在缩小话的时候调用
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowIconified 窗口图标化 ");
}
@Override
窗体从缩小化转化到界面显示的时候调用
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowDeiconified 窗口取消图标化 ");
}
@Override
当窗体显示到屏幕最前面的时候和从缩小化变为正常显示状态调用
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowActivated 窗口活跃状态");
}
@Override
窗体非活跃状态调用
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowDeactivated 窗口非活跃状态");
}