GUI编程10:窗口监听事件

视频链接:12、窗口监听事件_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p=12&vd_source=b5775c3a4ea16a5306db9c7c1c1486b5

1.使用成员内部类方式实现窗口监听

java 复制代码
ackage com.yundait.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(200,200,500,400);
        setVisible(true);
        addWindowListener(new MyWindowListener());
    }

    //创建窗口监听类,使用成员内部类方式实现。
    class MyWindowListener extends WindowAdapter{
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    }
}

2.使用匿名内部类方式监听窗口

java 复制代码
package com.yundait.lesson03;

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

public class TestWindow01 {
    public static void main(String[] args) {
        new WindowsFrame01();
    }
}

//创建我的窗口类
class WindowsFrame01 extends Frame{
    //调用构造器方法进行初始化;
    public WindowsFrame01(){
        setBackground(Color.blue);
        setBounds(200,200,500,400);
        setVisible(true);

        //添加窗口监听事件,
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }//使用匿名内部类方式监听窗口关闭
        });
    }
}

3.窗口监听可实现的常用功能

java 复制代码
package com.yundait.lesson03;

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

public class TestWindow01 {
    public static void main(String[] args) {
        new WindowsFrame01();
    }
}

//创建我的窗口类
class WindowsFrame01 extends Frame{
    //调用构造器方法进行初始化;
    public WindowsFrame01(){
        setBackground(Color.blue);
        setBounds(200,200,500,400);
        setVisible(true);

        //添加窗口监听事件,
        addWindowListener(new WindowAdapter() {
            @Override //窗口被打开
            public void windowOpened(WindowEvent e) {
                System.out.println("windowOpened");
            }

            @Override //窗口正在关闭
            public void windowClosing(WindowEvent e) {
                System.out.println("windowClosing");
                System.exit(0);

            }

            @Override //窗口被关闭
            public void windowClosed(WindowEvent e) {
                System.out.println("windowClosed");
            }

            @Override //窗口被激活
            public void windowActivated(WindowEvent e) {
                WindowsFrame01 source = (WindowsFrame01)e.getSource();
                source.setTitle("窗口被激活了");
                System.out.println("windowActivated");
            }
        });
    }
}
相关推荐
@LetsTGBot搜索引擎机器人4 分钟前
打造属于你的 Telegram 中文版:汉化方案 + @letstgbot 搜索引擎整合教程
开发语言·python·搜索引擎·机器人·.net
去伪存真9 分钟前
「实测可行」Tailwind CSS 4 与 UnoCSS 最新配置全攻略:一把跑通不踩坑
前端
十八朵郁金香12 分钟前
【H5工具】一个简约高级感渐变海报H5设计工具
前端·javascript·产品运营·axure·个人开发
人工智能的苟富贵13 分钟前
使用 Tauri + Rust 构建跨平台桌面应用:前端技术的新边界
开发语言·前端·rust·electron
lkbhua莱克瓦2415 分钟前
Java基础——常用API2
java·笔记·github·学习方法
j_xxx404_15 分钟前
C++ STL:string类(3)|operations|string类模拟实现|附源码
开发语言·c++
拉不动的猪22 分钟前
多窗口数据实时同步常规方案举例
前端·javascript·vue.js
摇滚侠35 分钟前
Spring Boot3零基础教程,Lambda 表达式与函数式接口,笔记95
java·spring boot·笔记
好学且牛逼的马39 分钟前
【JavaWeb|day19 Web后端进阶 SpringAOP、SpringBoot原理、自定义Starter、Maven高级】
java·spring boot·rpc
码界奇点40 分钟前
Java 开发日记MySQL 与 Redis 双写一致性策略挑战与实战解析
java·redis·sql·mysql·java-ee