`
womendu
  • 浏览: 1481344 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Java图形用户界面3—AWT事件模型

 
阅读更多

我们编写图形用户界面并不只是为了显示,我们是为了借助图形用户界面来完成我们需要的工作。这就需要程序为我们的动作比如点击按钮,做出响应然后完成我们的工作。在这里我们就用到了事件。

在Java事件模型中,必须存在事件、事件源、事件处理器三部分。事件是指描述发生了什么事件。事件源指的是产生这个事件的产生器。事件处理器是指接收事件对象、解释事件对象并处理用户交互的方法。

在Java1.1版本之后Java中的事件模型采用的是委托模型,或者称为授权事件模型。我们首先介绍一下事件监听器,在Java中一个事件监听器就是指事件发生时被通知的对象。它有两个要求:首先,为了可以接收到特殊类型事件的通知,它必须在事件源中已经注册;其次,它必须实现接收和处理通知的方法。

我们有了事件监听器后,它并不会去监听所对应的事件,也就是我们触发事件后,并不会去调用事件处理器。我们需要先将这个事件监听器注册给这个组件,或者说委托给这个组件。然后我们在事件发生时候,这个事件监听器会被触发,并执行相应的方法处理。

我们举个例子,理解一下。假如有一个老板,他有一个秘书,他需要频繁的发送文件给某个人,这些事情可以委托给或者授权给秘书去做,一旦有了发送文件的要求,秘书就会去做了。但是如果我们没有委托,我们有这个要求,秘书也并不会去发送文件。

Java的事件定义在Java.awt.event包中,下图中event结尾的是Java中定义的时间类:

对应的上面的事件类型,相应的都有事件的监听器类。名称是事件类型+Listener构成。下面我们看一个例子:

在上一篇文章中我写的那个程序,我们打开之后,我们点击右上角的关闭按钮并不会产生反应。就是因为我们虽然点击关闭按钮触发了一个关闭窗口的事件,但是这个事件并没有委托或者授权给任何一个对象,所以不会产生什么动作。在我刚写的这个例子程序中我们在26—36行,我们创建了一个类实现了WindowListener接口,并且实现了其中的windowClosing方法,这个方法是窗口关闭的时候触发的。下面还有一个方法是windowClosed方法,这个是窗口关闭以后触发的,读者不要混淆。这样我们点击关闭按钮也不会起作用,因为就相当于我们请了一个秘书,但是并没有委托给它任务。所以我们在第8行添加了一行代码,这个表示给窗口f加上一个窗口的监听器,这时候我们点击关闭按钮就会关闭窗口了。

但是我们可能发现了我们实现窗口监听器MyWindowListener类时候,必须实现WindowListener接口中所有的方法,但是有些方法我们并用不到,我们感觉这样很麻烦。Java的设计人员也考虑了这点,所以设计了Java的适配器类,就是我们第1张图片中Adapter结尾的类。这些类是实现了对应监听器的的适配类,它里面实现了对应接口中的所有方法,但是都只是空实现。这样我们编写我们自己的监听器类的时候只需要继承自对应的适配器类,然后重写对应的方法即可。下面我们修改一个上面程序的监听器类:

但是并不是所有的监听器接口都有对应的适配器类的,不是的例如ActionListener这个接口就没有对应的适配器类,因为这个接口只有一个方法,如果实现了对应的适配器类,反而是多次一举,并没有简化我们的编程。

在Java中的事件,不只是我程序中涉及的,还有很多,大家可以自己根据Java的帮助文档详细的学习,只要掌握Java事件模型是授权模型,学习起来就很容易了。

如果哪里错误,请直接指出。

分享到:
评论

相关推荐

    JAVA AWT图形用户界面设计

    抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持图形用户界面编程的功能包括: 用户...

    Java图形用户界面

    用AWT来生成图形化用户界面时,组件和容器的概念非常重要。组件是各种各样的类,封装了图形系统的许多最小单位,例如按钮、窗口等等;而容器也是组件,它的最主要的作用是装载其它组件,但是象Panel这样的容器也经常...

    第八章_java图形用户界面设计(修改)

    详细介绍Java图形用户界面设计方法,主要内容有:图形用户界面设计概述、AWT 事件处理模型、Swing组件等。

    图形用户界面设计与事件处理

    i. 掌握用AWT来设计图形用户界面的方法,尤其是组件、容器、布局管理器等概念。学习AWT事件处理模型,掌握事件源、事件、事件处理者等概念,让程序能够响应用户的操作。最后了解AWT各个组件的用法及所采用的事件处理...

    java图形用户界面用鼠标拖动画图形

    java编写满足以下要求的GUI程序: 在窗口中按下鼠标左键并拖拽,绘制图形(使用适配器类) 目的: 1.了解Swing基本组件的分类、GUI程序的设计方法;...4.深刻理解并熟练使用AWT事件模型与处理机制。

    Swing 图形描述

    Swing是一个用于开发Java应用程序用户界面的开发工具包。 以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件...

    高校教师研究生JavaPPT-08

    了解Java语言中图形用户界面的构造与设计。 掌握其实现的基本原理和方法,达到能够设计具有图形用户界面程序的目的。 掌握用AWT来设计图形用户界面的方法,尤其是组件、容器、布局管理器等概念。 学习AWT事件处理模型...

    Java基础实验报告图形用户界面设计.doc

    理解委托时间处理模型,掌握不同组件、不同事件的事件处理方法,设计出能够响应事 件的Java图形用户界面。 熟悉在组件上绘图的方法。 二、实验题目 用表格存储并显示个人所得税税率表,给定一个月收入值,计算应缴...

    AWT基础知识

    抽象窗口工具包(Abstract Window Tookit)是为java程序提供建立图形用户界面(Graphics User Interface GUI)的工具集。主要包含如下组件: 1. 用户界面组件 2. 事件处理模型 3. 图形图像工具(形状、颜色、字体) ...

    使用文本方式(控制台输入输出)和使用图形方式(可以使用AWT或者SWING)来实现猜数游戏。

    使用文本方式(控制台输入输出)和使用图形方式(可以使用AWT或者SWING)来实现猜数游戏。 进入程序后,显示文本内容,提示用户输入1-100之间的数字,然后程序对其进行判断,用户根据系统提供的提示信息继续猜,...

    Java清华教程.rar

     ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面的事件处理模型和方法,JFC介绍,Swing图形界面设计;  ■ Java Applet程序设计,Applet程序的特点,运行机制,与浏览器的...

    java Swing深入

    AWT-SWT-Swing AWT-SWT-Swing AWT-SWT-Swing AWT-SWT-Swing 大比较之一:模型设计与实...图形用户界面系统在事件处理设计上有两大类,一类是单线程模型,一类是多线程模型。在事件处理机制上,三者都是遵循单线程规则。

    清华大学java教程

     ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面的事件处理模型和方法,JFC介绍,Swing图形界面设计;  ■ Java Applet程序设计,Applet程序的特点,运行机制,与浏览器的...

    JAVA清华教程 详细

     ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面的事件处理模型和方法,JFC介绍,Swing图形界面设计;  ■ Java Applet程序设计,Applet程序的特点,运行机制,与浏览器的...

    JAVA清华大学教程

    ★ 第五讲 AWT图形用户界面设计 ◇课前索引 ◇5.1 用AWT生成图形化用户界面 ◇5.2 AWT事件处理模型 ◇5.3 AWT组件库 ◇本讲小结 ◇课后习题 ★ 第六讲 Java的线程和Java Applet ◇课前索引 ◇6.1 线程简介...

    java认证所有课程

    本模块讨论了事件驱动的图形用户界面(GUI)的用户输入机制。 第一节 相关问题 讨论 - 以下为与本模块内容有关的问题: - 哪些部分对于一个图形用户界面来说是必需的? - 一个图形化程序如何处理鼠标点击或者其他...

    JAVA 清华大学 教程

    ★ 第五讲 AWT图形用户界面设计 ◇课前索引 ◇5.1 用AWT生成图形化用户界面 ◇5.2 AWT事件处理模型 ◇5.3 AWT组件库 ◇本讲小结 ◇课后习题 ★ 第六讲 Java的线程和Java Applet ◇课前索引 ◇6.1 线程简介...

    javabook

    并讲授Java编程语言句法和面向对象的概念,以及Java运行环境的许多特性, 对图形用户界面(GUIs)、多线程和网络的支持等。本课程包括了参加SUN Certified Java Programmer和SUN Certified Java Developer考试所必备...

    [清华大学]JAVA教程

     ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面的事件处理模型和方法,JFC介绍,Swing图形界面设计;  ■ Java Applet程序设计,Applet程序的特点,运行机制,与浏览器的...

    JAVA_API1.6文档(中文)

    java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...

Global site tag (gtag.js) - Google Analytics