java windowevent,Java AWT WindowEvent事件

本文详细介绍了Java中的窗口事件WindowEvent及其抽象类WindowAdapter,展示了如何使用WindowListener接口处理窗口操作,如窗口激活、关闭、最大化等,并提供了两个示例,演示了如何简化事件处理和定制特定事件的响应。
摘要由CSDN通过智能技术生成

当我们关闭窗口、缩小窗口、启动工作窗口等时都会产生窗口事件(WindowEvent),这时会产生 WindowEvent 事件对象传递给事件监听器 WindowListener 接口,可以使用此对象决定应该如何处理工作。

下面我们来看一下窗口事件 WindowEvent 和它的抽象类 WindowAdapter。

WindowEvent类

下列是 WindowEvent 类的方法。

方法

说明

Window getWindow( )

返回触发事件的窗口

String paramString( )

返回触发事件的窗口参数字符串

WindowListener 接口定义了下列 7 个方法。

方法

说明

void windowActivated(WindowEvent e)

非焦点窗口变焦点窗口

void windowClosed(WindowEvent e)

关闭窗口

void windowClosing(WindowEvent e)

正关闭窗口,可用此决定是否要关闭

void windowDeactivated(WindowEvent e)

由焦点窗口变非焦点窗口

void windowDeiconified(WindowEvent e)

窗口由最小化变一般状态

void windowIconified(WindowEvent e)

窗口由一般变非最小化

void windowOpened(WindowEvent e)

开启窗口

【示例 1】

这个程序只是实现 WindowListener 接口的方法,非常单纯,当我们操作 Window 时,提示消息窗口将列出窗口的操作项目,程序第 34 行调用 addWindowListener( ) 是执行注册。

package chapter2;

import java.awt.*; // 引入类库

import java.awt.event.*; // 因为有Event

public class ch20 {

static Frame frm = new Frame("ch20");

// 担任事件监听器和拥有事件处理器

static class myListener implements WindowListener { // 实现WindowListener

public void windowActivated(WindowEvent e) { // windowActivated事件处理器

System.out.println("windowActivated");

}

public void windowClosed(WindowEvent e) { // windouClosed事件处理器

System.out.println("windowClosed");

}

public void windowClosing(WindowEvent e) { // windomClosing事件处理器

System.out.println("windowClosing");

frm.dispose(); // 释放frm窗口资源再关闭面口

}

public void windowDeactivated(WindowEvent e) { // windowDeactivated事件处理器

System.out.println("windowDeactivated");

}

public void windowDeiconified(WindowEvent e) { // windomDeiconified事件处理器

System.out.println("windowDeiconified");

}

public void windowIconified(WindowEvent e) { // windowIconified事件处理器

System.out.println("windowIconified");

}

public void windonOpened(WindowEvent e) { // windowOpened事件处理器

System.out.println("windowOpened");

}

}

public static void main(String[] args) {

frm.setLayout(null); // 不设版面配置

frm.setSize(300, 160); // 宽300, 高160

frm.addWindowListener(new myListener()); // ---注册

frm.setVisible(true); // 显示窗口

}

}

程序运行后,结果如下:

8b830fbc03392a325c9fb0b6e650c723.png

windowActivated

windowOpened

windowIconified

windowDeactivated

windowDeiconified

windowActivated

windowClosing

windowDeactivated

windowClosed

WindowAdapter类

WindowAdapter 类是抽象类,可以用更方便的方式处理 WindowEvent 事件。这个类是实现 WindowListener 接口,但是实现内容是空的,可以在设计监听器时继承此类。此例是让 myListener 继承 WindowAdapter,这样可以只针对有需要的地方设计事件处理程序。

【示例 2】

重新设计示例 1,但是简化为只重写 windowClosing( ) 方法。

package chapter2;

import java.awt.*; // 引入类库

import java.awt.event.*; // 因为有Event

public class ch21 {

static Frame frm = new Frame("ch21");

// 担任事件监听器和拥有事件处理器

static class myListener extends WindowAdapter { // 继承WindowAdapter

public void windowClosing(WindowEvent e) { // windowClosing事件处理器

System.out.println("windowClosing");

frm.dispose(); // 释放frm窗口资源再关闭窗口

}

}

public static void main(String[] args) {

frm.setLayout(null); // 不设版面配置

frm.setSize(300, 160); // 宽300,高160

frm.addWindowListener(new myListener()); // ---注册

frm.setVisible(true); // 显示窗口

}

}

程序运行后,结果如下:

956804f5d25f55e204274d5f004d53a3.png

windowClosing

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值