首页 > 编程语言 >《Java核心技术 卷I》图形界面事件处理适配器类

《Java核心技术 卷I》图形界面事件处理适配器类

时间:2024-11-15 14:48:23浏览次数:3  
标签:事件处理 调用 窗口 方法 图形界面 public WindowEvent 适配器 void

适配器类

并不是所有的事件处理都像按钮点击那样简单,假设你想监视用户何时想要关闭主窗体,可能希望弹出一个对话框,只有在用户确认之后才退出程序。当程序试图关闭一个窗口时,JFrame对象就是WindowEvent的事件源,如果希望捕获这个事件,就必须有一个合适的监听器对象,并将它添加到窗体的窗口监听器列表中。

WindowListener listener = ...;

frame.addWindowListener(listener);

窗口监听器必须是实现WindowListener接口的类的一个对象,完整接口如下:

package java.awt.event;
import java.util.EventListener;

public interface WindowListener extends EventListener {
    public void windowOpened(WindowEvent e);
    public void windowClosing(WindowEvent e);
    public void windowClosed(WindowEvent e);
    public void windowIconified(WindowEvent e);//最小化
    public void windowDeiconified(WindowEvent e);
    public void windowActivated(WindowEvent e);
    public void windowDeactivated(WindowEvent e);
}

每个含有多个方法的AWT监听器接口都配有一个适配器(adapter)类,这个实现了接口中所有方法,但是不做任何事情,真正的类可以继承这个类重写任何一个方法而不用实现接口以及接口中的方法,上面的接口的适配器类是WindowAdapter。

下面来定义一个窗口监听器,覆盖windowClosing方法:

    @Override
    public void windowClosing(WindowEvent e) {
        if(true) {
            System.exit(0);
        }
    }

java.awt.event.WindowListener 1.1

  • void windowOpened(WindowEvent e),窗口打开后调用这个方法。
  • void windowClosing(WindowEvent e),在用户发出一个窗口管理器命令要关闭窗口时调用这个方法,需要注意的是,仅当调用hide或dispose方法后窗口才能够关闭。
  • void windowClosed(WindowEvent e),窗口关闭后调用这个方法。
  • void windowIconified(WindowEvent e),窗口最小化后调用这个方法。
  • void windowDeiconified(WindowEvent e),窗口取消最小化后调用这个方法。
  • void windowActivated(WindowEvent e),激活窗口后调用这个方法,只有窗体或对话框可以被激活,通常窗口管理器会对活动窗口进行修饰,比如,高亮显示标题栏。
  • void windowDeactivated(WindowEvent e),窗口变为未激活状态后调用这个方法。

java.awt.event.WindowStateListener 1.4

  • void windowStateChanged(WindowEvent event),窗口被最大化、最小化或恢复为正常大小时调用这个方法。

标签:事件处理,调用,窗口,方法,图形界面,public,WindowEvent,适配器,void
From: https://blog.csdn.net/qq_36324341/article/details/143799309

相关文章

  • 在Windows 10中,设置默认浏览器通常需要通过图形界面进行操作,但也可以通过批处理文件(BA
    在Windows10中,设置默认浏览器通常需要通过图形界面进行操作,但也可以通过批处理文件(BAT)或者注册表(REG)文件来间接实现。这些方法比较复杂,且可能会有一定的风险,请在执行前确保备份相关数据。方法1:通过注册表(REG)文件设置默认浏览器默认浏览器的信息存储在注册表中,可以通过修改注册......
  • CLIPFit:不绕弯子,直接微调比提示微调和适配器微调更好 | EMNLP'24
    来源:晓飞的算法工程笔记公众号,转载请注明出处论文:Vision-LanguageModelFine-TuningviaSimpleParameter-EfficientModification论文地址:https://arxiv.org/abs/2409.16718论文代码:https://github.com/minglllli/CLIPFit创新点提出了一种CLIPFit方法以高效地微......
  • 【前端】JSX 中事件处理详解
    在React和JSX中,处理事件是构建交互式用户界面的重要部分。通过合理地处理事件,可以实现用户与应用的互动,从而提升用户体验。本文将详细说明如何在JSX中处理事件,包括类组件和函数组件中的不同方法,并提供示例代码和最佳实践。1.事件处理的基本概念在React中,事件处......
  • C++STL容器适配器——stack和queue
    目录一.stack介绍及使用1.stack介绍2.stack的使用3.模拟实现stack二.queue的介绍及使用1.queue介绍2.queue的使用3.模拟实现queue三.deque的了解1.deque的介绍2.deque的缺陷四.priority_queue的介绍及使用1.priority_queue介绍2.priority_queue的使用3.模拟实......
  • 【C++】详细介绍:priority_queue的使用、适配器、deque介绍、仿函数
    目录一、介绍二、使用三、函数模版和类模板的区别四、适配器1、适配器适配栈扩展:2、deque(双端队列)缺省模版五、仿函数一、介绍(1)、priority_queue称为优先级队列,是一种容器适配器,不是队列也不是容器。(2)、该结构的底层是堆结构,默认是大堆,用模版参数来区分是大堆......
  • Multi-Scale and Detail-Enhanced Segment Anything-1-LMSA-轻量级多尺度适配器
    `importtorch.nnasnnimporttorchimporttorch.nn.functionalasFclassModifyPPM(nn.Module):definit(self,in_dim,reduction_dim,bins):super(ModifyPPM,self).init()self.features=[]forbininbins:self.features.append(nn.Sequential(nn.Adaptive......
  • wxWidgets GUI设计教程 - 事件处理机制
    wxWidgetsGUI设计教程-事件处理机制目标在本教程中,我们将深入学习wxWidgets的事件处理机制。通过这一机制,我们可以响应用户的各种操作(如点击按钮、移动鼠标、按键等),并编写对应的代码逻辑。本教程内容包含事件处理基础、事件绑定与处理、事件传递机制等内容。将通过实例......
  • Redis使用IO多路复用进行事件处理机制
    一、epoll多路复用这里重点要说的就是redis的IO编程模型,首先了解下为什么要有多路复用呢?案例引用知乎上一个高赞的回答来解释什么是I/O多路复用。假设你是一个老师,让30个学生解答一道题目,然后检查学生做的是否正确,你有下面几个选择:第一种选择:按顺序逐个检查,先检查A,然后是B,之后是C......
  • 实验8:适配器模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。[实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1.画出对应的类图;2.提交源代码;3.注意编程规范......
  • 实验8:适配器模式
    [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 对应的类图: 2. 源代码:Cat接口: publicinterfaceCat{  voidcry();  voidcatchMouse();} 实体Cat类: publicclassConcreteCatimplementsCat{    @Over......