GUI programming study notes seven-AWT related (window monitoring)

GUI programming study notes seven-AWT related (window monitoring)


package pers.ylw.lesson03;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestWindow {
    public static void main(String[] args) {
        new WindowFrame();
    }
}

//自己的窗口类
class WindowFrame extends Frame{
    public WindowFrame(){
        setBackground(Color.blue);
        setBounds(100,100,400,200);
        setVisible(true);
        //addWindowListener(new MyWindowListener());

        //使用内部类,这里重写常用方法测试一下,平时Adapter只需要重写需要的方法就可以了
        this.addWindowListener(new WindowAdapter() {
            //关闭窗口时,就是点击X时
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0); //正常退出,窗口关闭,程序退出
                System.out.println("windowClosing");
            }

            //窗口激活,就是选中时
            @Override
            public void windowActivated(WindowEvent e) {
                WindowFrame windowFrame = (WindowFrame) e.getSource();
                windowFrame.setTitle("被激活了");
                //上面两行可以简写为
                //setTitle("被激活了");
                System.out.println("windowActivated");
            }

            //不好获取状态,不常用
//            @Override
//            public void windowOpened(WindowEvent e) {
//                System.out.println("windowOpened");
//            }

            //关闭掉之后,不好获取状态,不常用
//            @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("windowDeiconified");
//            }
            //状态改变
//            @Override
//            public void windowStateChanged(WindowEvent e) {
//                System.out.println("windowStateChanged");
//            }

        });

    }

    //使用内部类就不需要这个了
    //窗口的监听器,继承适配器,就不需要重写全部的方法了
    class MyWindowListener extends WindowAdapter{
        //点击窗口的X
        @Override
        public void windowClosing(WindowEvent e) {
            //setVisible(false); //窗口隐藏,不是关闭,还存在进程里
            System.exit(0); //正常退出,窗口关闭,程序退出
        }
    }
}
Published 318 original articles · Like 44 · Visitors 20,000+

Guess you like

Origin blog.csdn.net/qq_43594119/article/details/105703214