我们创建了窗体后,就要对窗体进行操作,比如关闭窗口。而这时候就要建立监听机制:

事件监听机制:
  A:事件源 事件发生的地方
  B:事件 就是要发生的事情
  C:事件处理 就是针对发生的事情做出的处理方案
  D:事件监听 就是把事件源和事件关联起来

举例:人受伤事件。

事件源:人(具体的对象)
  Person p1 = new Person("张三");
  Person p2 = new Person("李四");
事件:受伤
  interface 受伤接口 {
      一拳();
      一脚();
      一板砖();
  }
事件处理:
  受伤处理类 implements 受伤接口 {
    一拳(){ System.out.println("鼻子流血了,送到卫生间洗洗"); }
    一脚(){ System.out.println("晕倒了,送到通风处"); }
    一板砖(){ System.out.println("头破血流,送到医院"); }
}
事件监听:
  p1.注册监听(受伤接口)

 public class FrameDemo1 {
public static void main(String[] args) { //创建窗口
Frame f = new Frame("监听机制");
//设置属性
f.setBounds(300, 300, 300, 400);
// 让窗体关闭
//用于接收窗口事件的侦听器接口 WindowListene
//事件源:窗体
//事件:对窗体的处理
//事件处理:关闭窗口(System.exit(0));
//事件监听 //添加侦听器接口
f.addWindowListener(new WindowListener() { public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub } public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub } public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub } public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub }
//只监听关闭方法
public void windowClosing(WindowEvent e) {
//关闭窗口
System.exit(0); } public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub } public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub }
}); //显示窗口
f.setVisible(true);
} }

上面那种方法,只需要使用一种方法,但却调出了接口的所有构造方法,这样太浪费
  用适配器改进 接收窗口事件的抽象适配器类。WindowAdapter
步骤:

  创建侦听器,匿名内部类写适配器类,重写适配器类的构造方法

代码:

 //创建侦听器,匿名内部类写适配器类,重写适配器类的构造方法
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
//super.windowClosing(e);
//重写方法
System.exit(0);
}
});

java 24 - 2 GUI之监听机制和适配器改进窗口关闭的更多相关文章

  1. JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件

    JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...

  2. 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用

    http://blog.csdn.net/5iasp/article/details/37054171 文章标题:关于JAVA中事件分发和监听机制实现的代码实例 文章地址: http://blog.c ...

  3. GUI编程笔记(java)05:GUI事件监听机制原理和举例说明

    1.事件监听机制:       A:事件源          事件发生的地方       B:事件             就是要发生的事情       C:事件处理       就是针对发生的事情做 ...

  4. java中的key事件监听机制

    package com.at221; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.sw ...

  5. 监听 window.open 打开的窗口关闭并回调

    第三方的登录的解决方案通常有两种方式,一是打开一个新的标签页,然后登录回调回来: 二是通过父窗口打开一个子窗体去第三方登录,登陆成功时关掉子窗体回到父窗口. 问题来了 我的父窗体怎么样才知道子窗体被关 ...

  6. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

  7. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

  8. 创建图形用户界面GUI和事件监听机制的简单实现(java)

    创建图形化界面 1.创建Frame窗体      2.对窗体进行基本设置 比如:大小.位置.布局      3.定义组件      4.将组建通过窗体添加到窗体中 5.让窗体显示,通过setVisib ...

  9. JAVA GUI 事件监听事件 详解 和 案例.

    GUI(图形用户界面) Graphical User Interface(图形用户接口) 用图形的 方式, 来显示 计算机操作的 界面, 这样更方便 更直观. CLI Command Line Use ...

随机推荐

  1. ABAP中的同步和异步调用

    ABAP 的 CALL FUNCTION 类似于 Java/.NET 中的本地或远程方法调用.CALL FUNCTION 可以分为四种:1. Synchronous RFC (sRFC) - 同步调用 ...

  2. ae动态显示属性表————切记DataTable中要先Add(row)之后再往里传值。

    public partial class FrmAttributeTable : Form { private AxMapControl m_MapCtl; public FrmAttributeTa ...

  3. TFS2012 自动生成与部署

    思路: 每日构建,自动生成,然后从TFS提交日志中提取版本修订说明,调用打包脚本混淆并生成安装包(系统自带的太锉),最后将相关文件复制到指定网站供浏览下载.自动向测试网站发布,自动生成数据库并初始化. ...

  4. Computer Network and Internet(1)

    计算机网路相关的教材很少,TCP/IP,HTTP 协议非常多,很难找到一个合适的材料去学习. <计算机网络>自上而下方法是这个方面的经典之作. 1.what is internet? 1. ...

  5. HTML页面禁止选择、页面禁止复制、页面禁止右键

    HTML页面内容禁止选择.复制.右键刚在一个看一个站点的源代码的的时候发现的,其实原来真的很简单 <body leftmargin=0 topmargin=0 oncontextmenu='re ...

  6. jsp学习笔记一

    page属性 定义JSP文件中的全局属性. 实例: <%@ page language="java" contentType="text/html; charset ...

  7. js和jquery获取父级元素、子级元素、兄弟元素的方法

    最近工作中总遇到取各种父啊子啊兄弟姐妹啊,每次都得查,这次整理个全乎的~ [js的获取方式] function dom(){      var a = document.getElementByIdx ...

  8. Maven在Windows上的安装与配置

    下载Maven 1.进入Maven官网下载:maven.apache.org(点击进入或复制浏览器地址栏,回车进入) 注意事项:需要大家要注意的是(截至目前2015年12月1日)最新版本的Maven3 ...

  9. 在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可

    在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可

  10. python 读写文件

    #! -*- encoding:utf-8 -*- import os from config import * from function import GetCsspToken, RegistIn ...