AWT事件处理机制

合集下载

java面向对象填空题(含答案)

java面向对象填空题(含答案)

一、java面向对象(50个)易:1.对象是由一组属性和对这组属性进行(操作)的一组服务组成的。

2.对象是指(具体)的事物,而类是指一类具有某种共性的事物。

3.由类来确定具体对象的过程称为类的(实例化)。

4.一个类由类声明和(类体)两部分组成。

5.当一个类的类修饰符为( final )时,说明该类不能被继承,即不能有子类。

6.Java程序在extends之后只能有一个父类,即extends只能实现(单)继承。

7.在Java中只能实现单继承,但可通过(接口)实现多重继承。

8.一个类可实现多个接口,各接口名是以(,)分隔。

9.在类体中声明的变量称为(成员)。

10.在方法中声明的变量称为(局部变量)。

11.在Java程序中,使用关键字(this)来引用当前对象。

12.一个方法的定义是由方法声明和(方法体)两部分组成。

13.方法声明包括(方法名)、返回类型和形式参数。

14.构造方法的方法名要求与(类名)相同,而且无返回值。

15.面向对象的三个特性是:封装性、继承性和(多态性)。

16.在Java中,通过对象的(封装),实现了模块化和信息隐藏。

17.两个方法具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同,则称为方法的(重写)。

18.Java中通过关键字(super)来实现对父类成员的访问。

19.Java用( extends)关键字指明继承关系。

20.在Java中,用关键字(abstract)来修饰一个类,则该类为抽象类。

21.若某个类包含了抽象方法,则该类必须被定义为(抽象)类。

22.接口的定义,需使用关键字(interface)来声明。

23.声明父类时,需使用关键字(extends)来实现。

24.java语言中接口是特殊的类,其中包含常量和(抽象)方法。

25.当要引用包中所有的类时,类名可以用通配符(* )号代替。

26.一个类要从另一个类继承变量和方法,必须使用关键字(extends)。

27.(抽象)类不能被实例化,它不具备实际功能,只用于衍生子类。

11.2事件与常用组件介绍

11.2事件与常用组件介绍

事件驱动程序设计图形用户界面是静态的,它应该能够响应用户的操作。

比如,当用户在GUI上输入一个字符或点击鼠标,都会发生事件,程序根据事件类型作出反应就是事件处理。

1.1 事件处理模型与事件类在Java 1.1版之前事件处理采用事件传递模型,这种方法有一定的缺点,因此从Java 1.1版开始,Java的事件处理采用了新的事件处理模型,我们称为事件代理模型(event delegation model)。

尽管在Java 2中仍然支持两种模型,但推荐使用新的事件模型。

所谓事件代理模型就是将事件的处理从事件源对象代理给一个或多个称为事件监听器(listener)的对象,事件由事件监听器处理。

事件代理模型把事件的处理委托给外部实体进行处理,实现了事件源和监听器分离的机制。

事件代理模型涉及到三种对象:事件源、事件和事件监听器。

①事件源(event source):产生事件的对象,一般来说可以是组件,如按钮、对话框等。

当这些对象的状态改变时,就会产生事件。

事件源可以是可视化组件,也可以是计时器等不可视的对象。

②事件(event):描述事件源状态改变的对象。

如按钮被点击,就会产生ActionEvent 动作事件。

③事件监听器(listener):接收事件并对其进行处理的对象。

事件监听器对象必须是实现了相应接口的类的对象。

Java的事件处理模型如图1所示。

首先在事件源上注册事件监听器,当用户行为触发一个事件时,运行时系统寻找事件监听器对象来处理事件。

图 1 Swing事件处理模型为了实现事件处理,Java定义了大量的事件类,这些类封装了事件对象。

Swing组件可产生多种事件,如点击按钮、选择菜单项会产生动作事件(ActionEvent),关闭窗口会产生窗口事件(WindowEvent)等。

所有事件类的根类是java.util.EventObject类,该类的定义为:package java.util;public class EventObject implements java.io.Serializable {protected transient Object source;public EventObject(Object source) {if (source == null)throw new IllegalArgumentException("null source");this.source = source;}public Object getSource() {return source;}294public String toString() {return getClass().getName() + "[source=" + source + "]";}}其中,getSource()方法是最重要的方法,它返回触发事件的事件源对象,注意它的返回类型是Object。

TP6-事件机制

TP6-事件机制
第六章事件模型大连东方北 Nhomakorabea职业培训学校
回顾
• 抽象窗口工具包(AWT)是一组类,用来创建图形用 抽象窗口工具包( )是一组类, 户界面,并能够通过键盘和鼠标响应用户的操作。 户界面,并能够通过键盘和鼠标响应用户的操作。 • 两种常用容器类:框架(Frame类)和面板(Panel类) 两种常用容器类:框架( 类 和面板( 类 • AWT支持下列类型的组件:标签、文本域、文本区、 支持下列类型的组件: 支持下列类型的组件 标签、文本域、文本区、 按钮、复选框、列表框等。 按钮、复选框、列表框等。 • 布局管理器类提供控制 GUI 组件物理布局的一种方式。 组件物理布局的一种方式。
大连东方北佳职业培训学校
2
2
目标 • • • • • 事件控制的要点 AWT 事件结构 基本事件控制 使用多个监听器 匿名类
大连东方北佳职业培训学校
3
3
事件控制的要点 • Java 最新的事件处理方法是基于授权事件 模型 • 事件源生成事件并将其发送至一个或多个 监听器 • 监听器简单地等待,直到它收到一个事件。 监听器简单地等待,直到它收到一个事件。 一旦事件被接受,监听器将处理这些事件, 一旦事件被接受,监听器将处理这些事件, 然后返回。 然后返回。
接收到键盘输入时会生成此事件。 接收到键盘输入时会生成此事件。Component 拖动、移动、单击、 拖动、移动、单击、按下或释放 Component 鼠标或在鼠标进入或退出一个组 件时,会生成此事件。 件时,会生成此事件。 将组件添加至容器或从中删除时 Container 会生成此事件。 会生成此事件。 、 在文本区或文本域的文本改变时 TextField、 TextArea 会生成此事件 。 当一个窗口激活、关闭、失效、 当一个窗口激活、关闭、失效、 Window 恢复、最小化、 恢复、最小化、打开或退出时会 生成此事件。 生成此事件。

《Java基础程序设计》_课后习题

《Java基础程序设计》_课后习题

第一章思考题】1、简述path 环境变量的作用。

2、请说说你对JVM 的理解。

答案】1、path 环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。

当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path 环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。

2、JVM 是Java Virtual Machine 的缩写,全称是Java 虚拟机。

Java 语言的一个非常重要的特性就是跨平台性,而Java 虚拟机是实现这一特性的关键。

不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。

Java语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

第二章【思考题】1、请简述& 与&& 的区别。

2、简述break、continue 和return 语句的区别。

【答案】1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

当运算符“ &”和“ && ”的右边为表达式时,使用“ &”进行运算,不论左边为true 或者false,右边的表达式都会进行运算。

如果使用" && ”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“ && ”被称作短路与。

2、break 语句:在switch 条件语句和循环语句中都可以使用break 语句。

当它出现在switch 条件语句中时,作用是终止某个case并跳出switch结构。

AWT事件处理

AWT事件处理

Java AWT事件处理1 AWT事件处理基本概念AWT事件处理的过程中,主要涉及3类对象。

(1) Event(事件):用户对组件的一个操作,称之为一个事件,以类的形式出现,例如,键盘操作对应的事件类是KeyEvent。

其实例在改事件发生时有系统自动产生。

(2) Event Source(事件源):事件发生的场所,通常就是各个组件,例如按钮Button。

(3) Event Monitor(事件监听器):接收事件对象并对其进行处理的类的对象,通常其中某个成员方法对事件进行相应的处理。

事件委托处理模型图10-10 事件委托处理模型Java采取了事件委托处理模型(Delegation Model),事件源自己不处理事件,而是把在其自身所有可能发生的事件委托给事件监听器来处理。

比如,在Canvas对象上既可能发生鼠标事件,也可能发生键盘事件,该Canvas对象就可以委托给事件监听器1来处理鼠标事件,同时委托给事件监听器2来处理键盘事件。

委托模型把事件的处理委托给外部的处理实体进行处理,实现了将事件源和监听器分开的机制。

2 事件事件分类。

按事件的性质分类java.util.EventObject类是所有事件对象的基础父类,所有事件都是由它派生出来的。

AWT的相关事件继承于java.awt.AWTEvent类,这些AWT事件分为两大类:低级事件和高级事件。

(1)低级事件低级事件是指基于组件和容器的事件,当一个组件上发生事件,如鼠标的进入、点击、拖放等,或组件的窗口开关等时,触发了组件事件。

—ComponentEvent(组件事件:组件尺寸的变化、移动);—ContainerEvent(容器事件:组件增加、移动);—WindowEvent(窗口事件:关闭窗口、窗口闭合、图标化);—FocusEvent(焦点事件:焦点的获得和丢失);—KeyEvent(键盘事件:键按下、释放);—MouseEvent(鼠标事件:鼠标单击、移动)。

Java第06章--1(AWT与Swing)

Java第06章--1(AWT与Swing)

• • 视图(view):它专门负责组件的绘制工作,主要涉及 paint()方法。MVC设计范式的最大优点是一个模型可以 有多个视图,每个视图是一个不同侧面但内容却是完整的。 • 一个模型的几个视图都是从不同侧面、用完整的内容来描 述同一个模型。当模型的控制器要修改其内容时,均会通 知这每个视图,它们都会自动地更新自己的视图显示。 • • 控制器(controller):专门负责管理和处理组件所接 收到的事件,这些事件可能来自用户的操作。如键盘输入、 鼠标点击和拖放等,也可能来自系统,如系统计时器发出 的事件。 • 视图和其控制器之间的通信不仅频繁且非常复杂,因此 JFC系统把两者封装成一个整体。
• • 模型(model):模型负责获取和管理组件的状态,用户若 需要询问组件的状态时,实际上是询问该组件的模型。 • 若要询问Swing型按钮组件(JButton 类的一个对象)的状 态,可调用JButton 类的父类javax.swing.AbstractButton所 提供的isSelected()方法,它定义为: – public boolean isSelected() { ... } – 该方法返回一个逻辑值,若为true则该按钮组件被压下,反 之返回false则按钮是松开状态。 • javax.swing包中的各种组件,对于描述该组件状态和内容的 模 型 都 是 用 以 Model 结 尾 的 接 口 实 现 , 例 如 , 对 于 按 钮 在 javax.swing包中有一个如下定义的接口: – public interface ButtonModel extends ItemSelectable { ... } • 每个JButton类的对象都保存着一个表示该按钮组件模型的对 象,调用其父类AbstractButton的方法就可以得到它,即: – JButton b = new JButton( "确定" );

GUI练习题

GUI练习题

GUI练习题图形与⽤户界⾯设计练习题⼀.选择题1.Window是宣⽰屏上独⽴的本机窗⼝,它独⽴于其它容器,Window的两种形式是()A、JFrame和JDialogB、JPanel和JFrameC、Container和ComponentD、LayoutManager和Container2.框架(Frame)的缺省布局管理器就是()A、流程布局(Flow Layout)B、卡布局(Card Layout)C、边框布局(Border Layout)D、⽹格布局(Grid Layout)3.java.awt包提供了基本的java程序的GUI设计⼯具,包含控件、容器和()A、布局管理器B、数据传送器C、图形和图像⼯具D、⽤户界⾯构件4.所有Swing构件都实现了()接⼝A、ActionListenerB、SerializableC、AccessibleD、MouseListener5.事件处理机制能够让图形界⾯响应⽤户的操作,主要包括()A、事件B、事件处理C、事件源D、以上都是6.Swing采⽤的设计规范是()A、视图----模式----控制B、模式-----视图---控制C、控制-----模式----视图D、控制----视图-----模式7.抽象窗⼝⼯具包( )是java提供的建⽴图形⽤户界⾯GUI的开发包.A、AWTD、/doc/75811ab665ce0508763213fc.html ng8.关于使⽤Swing的基本规则,下列说法正确的是( )A、Swing构件可直接添加到顶级容器中B、要尽量使⽤⾮Swing的重要级构件C、Swing的JButton不能直接放到Frame上D、以上说法都对9.下列不属于java.event包中定义的事件适配器的是( )A、构件适配器B、焦点适配器C、键盘适配器D、标签适配器10.( )布局管理器使容器中各个构件呈⽹格布局,平均占据容器空间。

A、FlowLayoutB、BorderLayoutC、GridLayoutD、CardLayout11.容器被重新设置⼤⼩后,哪种布局管理器的容器中的组件⼤⼩不随容器⼤⼩的变化⽽改变( )A、CardLayoutB、FlowLayoutC、BorderLayoutD、GridLayout12.paint()⽅法使⽤哪种类型的参数A、GraphicsB、Graphics2DC、StringD、 Color13.监听事件和处理事件( )A、都由Listener完成B、都由相应事件Listener处注册过的组件完成C、由Listener和组件分别完成D、由Listener和窗⼝分别完成14.下列哪个属于容器的组件( )A、JFrameD、 JApplet15.下列不属于容器的是( )A、JWindowB、TextBoxC、JPanelD、JScrollPane16.下⾯哪个语句是正确的( )A、Object o=new JButton(″A″);B、JButton b=new Object(″B″);C、JPanel p=new JFrame();D、JFrame f=new JPanel();⼆.填空题1、在需要⾃定义Swing构件的时候,⾸先要确定使⽤那种构件类作为所定制构件的______,⼀般继承Jpanel类或更具体的Swing类.2、Swing的事件处理机制包括_____、事件和事件处理者。

AWT编程

AWT编程
– owner:指定该对话框所依赖的窗口,既可以是窗口,也可以是 对话框。
– title:指定该对话框的窗口标题。 – modal:指定该对话框是否是模式的,可以是true或false。
FileDialog
• Dialog类还有一个子类:FileDialog,它代 表一个文件对话框,用于打开、或者保存 文件,FileDialog也提供了几个构造器,分 别可支持parent、title和mode三个构造参数, 其中parent、title指定文件对话框的所属父 窗口和标题,而mode用于指定该窗口用于 打开文件、或保存文件,该参数支持如下 两个参数值:FileDialog.LOAD、 FileDialog.SAVE。
BorderLayout(con.)
• BorderLayout布局格式:当改变容器大小 时
– 当某个区域没有组件时,它的空间会被自动占 满。
– North, South和CentNero区rth域水平调整 – East, West和Center区域垂直调整
Center
South
East West
AWT的问题
• 使用AWT作出的图形用户界面在所有平台 上都显得很丑陋,功能也非常有限。
• AWT为了迎合所有主流操作系统的界面设 计,AWT组件只能使用这些操作系统上图 形界面组件的交集,所以不能使用特定操 作系统上复杂的图形界面组件,最多只能 使用四种字体。
• AWT用的是非常笨拙的,非面向对象的编 程模式。
绝对定位
• Java也提供了那种拖控件的方式,即Java 也可以对GUI组件进行绝对定位。在Java 容器中采用绝对定位的步骤如下:
– (1)将Container的布局管理器设成null: setLayout(null)。

java_swing面试题目(3篇)

java_swing面试题目(3篇)

第1篇一、Java Swing基本概念1. 什么是Java Swing?答:Java Swing是一种用于创建图形用户界面的库,它是Java语言的一个扩展,允许开发者创建具有丰富视觉效果的桌面应用程序。

2. Swing的组件有哪些?答:Swing组件包括基本组件(如按钮、标签、文本框等)、容器组件(如面板、窗口、滚动条等)、特殊组件(如树、表格等)。

3. Swing与AWT的区别是什么?答:Swing是基于Java的,而AWT是基于本地平台的。

Swing组件在不同平台上表现一致,而AWT组件在不同平台上可能有所不同。

Swing运行速度较慢,但提供了更多功能和更好的用户体验。

二、Swing基本组件1. 如何创建一个按钮,并设置其文本和字体?答:使用JButton类创建按钮,并设置其文本和字体。

```javaJButton button = new JButton("按钮");button.setFont(new Font("宋体", Font.PLAIN, 12));```2. 如何获取并设置文本框中的文本?答:使用JTextField类创建文本框,并通过getText()和setText()方法获取和设置文本。

```javaJTextField textField = new JTextField();String text = textField.getText(); // 获取文本textField.setText("新文本"); // 设置文本```3. 如何使用单选按钮(JRadioButton)实现多选?答:使用JRadioButton类创建单选按钮,并使用ButtonGroup类将它们分组。

```javaJRadioButton radioButton1 = new JRadioButton("选项1");JRadioButton radioButton2 = new JRadioButton("选项2");ButtonGroup buttonGroup = new ButtonGroup();buttonGroup.add(radioButton1);buttonGroup.add(radioButton2);```4. 如何使用复选框(JCheckBox)实现多选?答:使用JCheckBox类创建复选框,它们之间互不影响。

AWT及AWT事件处理(2)

AWT及AWT事件处理(2)

8.3.1 事件处理模型中的三类对象 事件( ):用户在界面上的操作 事件(Event):用户在界面上的操作。 ):用户在界面上的操作。 事件源( ):产生事件的组件 事件源(Event Source):产生事件的组件。 ):产生事件的组件。 事件处理器( ):事件处理器是一 事件处理器(Event Handler):事件处理器是一 ): 个方法,该方法接受一个事件对象, 个方法,该方法接受一个事件对象,对其进行解释 并作出相应处理。 并作出相应处理。 8.3.2 委托方式的事件处理机制 原有的JDK采用基于层次模型的向上传递机制来 原有的 采用基于层次模型的向上传递机制来 进行事件的处理。 进行事件的处理。从JDK1.1以后采用委托方式的事 以后采用委托方式的事 件处理机制。 件处理机制。
Java程序设Байду номын сангаас Java程序设计
主讲教师: 主讲教师:周立波
第八章 AWT及AWT事件处理 及 事件处理
AWT是Java中支持图形化用户界面 是 中支持图形化用户界面GUI设计的一个 中支持图形化用户界面 设计的一个 工具集.GUI实现应用与用户的交互 是一个应用程序的 实现应用与用户的交互,是一个应用程序的 工具集 实现应用与用户的交互 重要组成部分. 重要组成部分
8.2 基于 基于AWT的GUI构建方法 的 构建方法
构建基于AWT的GUI,关键是了解 的 中组件、 构建基于 ,关键是了解AWT中组件、 中组件 容器和布局管理器以及它们之间的关系。 容器和布局管理器以及它们之间的关系。 8.2.1 组件 组件是GUI的基本组成元素。所有 的基本组成元素。 组件是 的基本组成元素 所有AWT的组件都 的组件都 是 抽象类Component或MenuComponent类的子类。 类的子类。 抽象类 或 类的子类

java中awt的常用的用法

java中awt的常用的用法

一、概述awt的作用1.1 awt的全称1.2 awt的定位和作用1.3 awt的优点和局限二、awt常用的组件2.1 按钮(Button)2.2 标签(Label)2.3 文本框(TextField)2.4 文本区域(TextArea)2.5 列表(List)2.6 下拉列表(Choice)2.7 复选框(Checkbox)2.8 单选按钮(RadioButton) 2.9 滚动条(Scrollbar)2.10 对话框(Dialog)2.11 框架(Frame)三、awt的布局管理器3.1 FlowLayout3.2 BorderLayout3.3 GridLayout3.4 GridBagLayout3.5 CardLayout四、awt事件处理4.1 事件概述4.2 事件监听器4.3 事件对象4.4 事件的处理五、awt绘图5.1 绘图的基本概念5.2 绘图的步骤5.3 绘制图形5.4 绘制图像5.5 绘制文本六、awt的高级应用6.1 图形用户界面(GUI)开发 6.2 多媒体处理6.3 网络编程6.4 多线程处理七、awt的实际应用7.1 GUI程序开发7.2 窗口程序设计7.3 界面美化7.4 数据展示八、结语在Java编程中,awt(Abstract Window Toolkit)是一个用于创建图形用户界面(GUI)应用程序的基本工具包。

它提供了一系列的组件、布局管理器、事件处理和绘图功能,帮助开发者快速构建可视化的程序界面。

本文将从awt的基本组件、布局管理器、事件处理、绘图以及高级应用方面进行详细介绍。

一、概述awt的作用1.1 awt的全称awt的全称是Abstract Window Toolkit,它是Java的一个基本GUI 工具包,提供了一系列的类和方法供开发者创建、管理和展示图形用户界面。

1.2 awt的定位和作用awt的定位是作为Java的标准库,为开发者提供创建GUI界面的基本工具,充分利用面向对象的思想,让开发者能够通过简单的调用API来完成复杂的图形界面设计。

Java实用教程 第11章 AWT图形用户界面编程

Java实用教程 第11章 AWT图形用户界面编程

fr.add(p1, BorderLayout.NORTH);
// 将p1添加到窗口NORTH区域(即顶部)
Panel p2 = new Panel();
// 创建面板p2
p2.setLayout(new GridLayout(4, 5, 3, 3));
// 设置p2使用GridLayout布局
String[] name = {"7", "8", "9", "÷", "√", "4", "5", "6", "×", "%"
AWT容器
Window和Frame
Window和Frame
Window有两个子类:Frame和Dialog。Frame带有标题,而且可以调整大小。Dialog可以被移动, 但是不能改变大小。Frame有一个构造方法Frame(String title),通过它可以创建一个以参数为标题 的Frame对象。Frame的add()方法向容器中加入其他组件。Frame被创建后是不可见的,必须通过 以下步骤使它成为可见。
setLocation()、setSize()或setBounds() 方法,为它们在容器中一一定位。
布局管理器
1.流式布局管理器
FlowLayout是把组件从左向右、从上向下,一个接一个地放到容器中,组件之间的默认间隔 (水平和垂直)为5个像素,对齐方式为居中。组件的大小由布局管理器根据组件的最佳尺寸 来决定。 FlowLayout的构造方法:
, "1", "2", "3", "-", "1/x", "0", ".", "C", "+", "±"};

java第五章习题及答案

java第五章习题及答案
一.填空题:
1.Internet/Intranet Server(服务器),客户端
2.初始化、启动、停止、退出
3.事件
4.ActionEvent,ActionListener,actionPerformed(ActionEvent e)
5.CheckboxGroup,Checkbox,Choice,List,ItemEvent
result.setText(j.toString(i));
}
catch(ArithmeticException ee){
result.setText("divided by zero");
}
}
}
class clearL implements ActionListener{
public void actionPerformed(ActionEvent e){
TextField result=new TextField(10);
Label la1=new Label("first data:");
Label la2=new Label("second data:");
Label la3=new Label("equal:");
Button plus=new Button("+");
二.选择题:
4.b5.A6.A7.a
二.编程题:
1.
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassExampleextendsAppletimplementsActionListener{

第9章 GUI_补充案例

第9章 GUI_补充案例

第九章GUI案例9-1 AWT事件处理机制一、案例描述1、考核知识点编号:00109002名称:AWT事件处理机制2、练习目标掌握如何使用AWT事件处理机制3、需求分析事件处理机制专门用于响应用户的操作,比如,想要响应用户的点击鼠标、按下键盘等操作,就需要使用AWT的事件处理机制。

为了让初学者熟悉AWT的事件处理机制,本案例将实现关闭一个窗口的功能。

4、设计思路(实现原理)1)编写类Example012)建立一个窗体,名为“第一个窗体”3)定义一个类MyWindowListener实现事件监听器的接口WindowListener。

4)通过addWindowListener()方法为事件源注册事件监听器对象。

二、案例实现import java.awt.*;import java.awt.event.*;public class Example01 {public static void main(String[] args) {// 建立新窗体Frame f = new Frame("第一个窗体!");// 设置窗体的宽和高f.setSize(300, 300);// 设置窗体的出现的位置f.setLocation(300, 200);// 设置窗体可见f.setVisible(true);// 为窗口组件注册监听器MyWindowListener mw=new MyWindowListener();f.addWindowListener(mw);}}// 创建MyWindowListener类实现WindowListener接口class MyWindowListener implements WindowListener {// 监听器监听事件对象作出处理public void windowClosing(WindowEvent e) {Window window = e.getWindow();window.setVisible(false);// 释放窗口window.dispose();}public void windowActivated(WindowEvent e) {}public void windowClosed(WindowEvent e) {}public void windowDeactivated(WindowEvent e) {}public void windowDeiconified(WindowEvent e) {}public void windowIconified(WindowEvent e) {}public void windowOpened(WindowEvent e) {}}运行结果如图9-1所示。

3ATWSwing事件处理

3ATWSwing事件处理

3ATWSwing事件处理AWT(AbtractWindowingToolkit)是用来创建Java图形用户界面的基本工具.JavaSwing是JFC(JavaFoundationClae)的一部分,它可以弥补AWT的一些不足.Container(容器):扩展组件的抽象基本类,例如Panel、Applet、Window、Dialog和Frame等是由Container演变的类,容器中可以包括多个组件。

LayoutManager(布局管理器):定义容器中组件的摆放位置和大小接口。

Java中定义了几种默认的布局管理器。

Graphic(图形):组件内与图形处理相关的类,每个组件都包含一个图形类的对象。

1组件",ColorgetForeground():获取组件的前景色。

",StringgetName():获取组件的名称。

",DimeniongetSize():以Dimenion对象的形式返回组件的大小。

",voidpaint(Graphicg):绘制该组件。

",voidrepaint():重绘组件。

",voidupdate(Graphicg):更新该组件。

",voidetViible(booleanb):根据参数的值显示或隐藏此组件。

",voidetSize(intwidth,intheight):调整组件的大小,使其宽度和高度分别为width和height。

",voidetName(Stringname):将组件的名称设置为指定的字符串。

",voidetForeground(Colorc):设置组件的前景色。

AWT的组件库画布(Canva)是处于屏幕上的一个空白矩形区域,在该区域可以绘图,也可以获得用户激发的事件。

画布组件可以监听鼠标事件和键盘事件。

publicvoidpaint(Graphicg)由于画布的paint()方法默认操作是清除画布,所以重写此方法的应用程序不需要调用uper.paint(g)。

AWT

AWT

AWT是api负责为Java程序建立的图形用户接口,AWT无疑使Java平台中最直观的部分之一。

AWT的基本思想是以面向对象的方法实现了一个跨平台GUI工具集,它提供了各种用于GUI设计的标准组件。

上面的图是AWT组件内容。

1.组件:组件是图形用户界面的,最小单位之一,它里面不再包含其它的成分。

一般的来说组件的作用是完成与用户的一次交互。

例如:接受用户的一个命令。

结束用户的一个文本输入、向用户显示文字或者是图片等等。

组件是图形用户界面标准化结果。

常见的组件有按钮、文本框、密码框等等。

2.容器:容器是用来组织其它界面成分和元素的单元。

一般说来一个应用程序的图形用户界面首先对应一个复杂的容器。

例如一个窗口。

这个容器的内部包含其他的内容。

如:按钮文本框、菜单等等。

也或者包含有其他的容器。

3.布局管理器:为了使生成的图形用户界面具有良好的平台无关性。

在Java语言当中提供了布局管理器这个功能,来管理组件在容器当中的布局。

而不是直接的设置位置和大小。

布局管理器就是一个指定其位置的工具,实现跨平台时仍然保持组件原来的布局。

Java当中所有和awt相关的类,都放在java.awt这个包中。

awt包是Java基本包中比较大的一个包。

在其中定义了GUIi的组件类以及其他用于构造图形用户界面的类。

如:字体类、绘图类等等。

上图描述了awt中的体系结构,采用从上倒下分层方式组织,所以理解和使用起来比较方便。

从这个体系结构我们可以看出,抽象类Component是所有除了菜单类组件之外AWT组件的父类。

他代表一个能以图形化方式显示出来,并且可以与用户交互的对象,例如:他的子类Button就代表按钮、TextArea就代表文本域、Container就代表容器。

从广义角度来讲,AwT是由各种容器组件构成。

如按钮、文本框等等小组件,窗口、框架等等大组件。

还有负责控制的布局管理器组件。

从刚才的AWT组件类层次中我们可以看出,容器类Container是Component的直接子类。

描述awt事件处理机制

描述awt事件处理机制

描述awt事件处理机制AWT(Abstract Window Toolkit)是Java的原始图形用户界面工具包,提供了一种供开发人员创建GUI应用程序的方法。

AWT事件处理机制允许开发人员对用户界面中的事件进行响应和处理。

AWT事件处理机制包括以下关键组件:1. 事件对象(Event objects):事件对象代表了用户界面中发生的事件,例如按钮点击、鼠标移动等。

每种类型的事件都有对应的事件对象。

2. 事件源(Event source):事件源是触发事件的组件,例如按钮、文本框等。

当事件发生时,事件源会创建一个事件对象并通过调用监听器的方法将事件对象传递给监听器。

3. 监听器(Listener):监听器是一个接口,定义了一种特定类型的事件处理方法。

开发人员可以为每种类型的事件创建一个监听器,并实现对应的事件处理方法。

4. 注册监听器(Registering listeners):开发人员需要将监听器注册到事件源上,以便在事件发生时能够接收到事件对象。

通常,通过调用事件源的`addXXXListener()`方法来注册监听器。

5. 事件分发器(Event dispatcher):事件分发器负责将事件对象传递给正确的监听器。

当事件发生时,事件源会将事件对象传递给事件分发器,然后事件分发器将根据事件类型寻找相应的监听器,并调用相应的事件处理方法。

6. 事件处理方法(Event handling methods):监听器的事件处理方法用于处理特定类型的事件。

开发人员需要实现这些方法以定义事件发生时的响应行为。

总结起来,AWT事件处理机制的基本流程如下:1. 开发人员创建一个或多个监听器,并实现相应的事件处理方法。

2. 开发人员将监听器注册到所需的事件源上,以便在事件发生时能够接收到事件对象。

3. 当事件发生时,事件源会创建一个事件对象,并将其传递给事件分发器。

4. 事件分发器根据事件类型寻找相应的监听器,并调用监听器的事件处理方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AWT事件处理机制 AWT事件处理机制
Java事件
AWT事件处理机制
ActionEvent
button Frame
ActionPerformed(ActionEvent )
事件源
监听器
AWT事件处理机制
//: Button1.java // Putting buttons on an applet import java.awt.*; import java.applet.*; public class Button1 extends Applet { Button b1 = new Button("Button 1"), b2 = new Button("Button 2"); public void init() { add(b1); add(b2); } } ///:~
层次模型(JDK1.0)
这种模型有一个显著的优点: 它简单,而且非常适合面向对象的编程环境; 说到底,所有的组件都继承了ponent类, 而handleEvent()就在ponent类中。 然而,这种模型也存在缺点: 事件只能由产生这个事件的组件或包含这个组 件的容器处理。这个限制违反了面向对象编程的一个 基本原则:功能应该包含在最合适的类中。而最适合 处理事件的类往往并不是源组件的容器层次中的成员。 大量的CPU周期浪费在处理不相关的事件上。任何对 于程序来说不相关或者并不重要的事件会沿容器层次 一路传播,直到最后被抛弃。不存在一种简单的方法 来过滤事件。
Methods actionPerformed(Actio nEvent) itemStateChanged(Item Event) mouseDragged(MouseEve nt) mouseMoved(MouseEvent) mousePressed(MouseEve nt) mouseReleased(MouseEv ent) mouseEntered(MouseEve nt) mouseExited(MouseEven t) mouseClicked(MouseEve nt) keyPressed(KeyEvent)
为了处理事件,你必须定义接收这个事件的组 件的子类,或者在基容器创建一个庞大的 handleEvent()方法。 委托事件模型是在JDK1.1中引入的。在这个模型中, 事件被送往产生这个事件的组件,然而,注册一个或 多个称为监听者的类取决于每一个组件,这些类包含 事件处理器,用来接收和处理这个事件。采用这种方 法,事件处理器可以安排在与源组件分离的对象中。 监听者就是实现了Listener接口的类。
定义多重接口 implements MouseMotionListener, MouseListener 声明多个接口时,可以用逗号隔开。 监听多个源 f.addMouseListener(this); f.addMouseMotionListener(this);
事件Adapters(适配器)
委托模型(JDK1.1或更高版本)
优点 事件不会被意外地处理。 有可能创建并使用适配器 (adapter)类对 事件动作进行分类。 委托模型有利于把工作分布到各个类中。 缺点 不容易将JDK1.0代码移植到JDK1.1上。
Category Action Item Mouse motion
Interface Name ActionListene r ItemListener MouseMotionLi stener
捕获事件
public boolean action(Event evt, Object arg) { if(evt.target.equals(b1)) getAppletContext().showStatus("Button 1"); else if(evt.target.equals(b2)) getAppletContext().showStatus("Button 2"); // Let the base class handle it: else return super.action(evt, arg); return true; // We've handled it here } } ///:~
AWT事件处理机制
action()拥有两个自变量:第一个是事件的类 型,包括所有的触发调用action()的事件的有 关信息。例如鼠标单击、普通按键按下或释 放、特殊按键按下或释放、鼠标移动或者拖 动、事件组件得到或丢失焦点,等等。第二 个自变量通常是我们忽略的事件目标。第二 个自变量封装在事件目标中,所以它像一个 自变量一样的冗长。 需调用action()时情况非常有限:将控件置入 窗体时,一些类型的控件(按钮、复选框、 下拉列表单、菜单)会发生一种“标准行 动”,从而随相应的Event对象发起对action() 的调用。比如对按钮来说,一旦按钮被按下, 而且没有再多按一次,就会调用它的action() 方法。这种行为通常正是我们所希望的,因 为这正是我们对一个按钮正常观感。但正如 本章后面要讲到的那样,还可通过 handleEvent()方法来处理其他许多类型的事件。
Mouse button
MouseListener
Key
KeyListener
多监听者
多监听者可以使一个程序的不相关部分执行同样的 动作。 动作。 事件发生时, 事件发生时,所有被注册的监听者的处理器都会被 调用 AWT事件监听框架事实上允许同一个组件带有多 个监听者。一般地,如果你想写一个程序,它基于 一个事件而执行多个动作,把那些行为编写到处理 器的方法里即可。然而,有时一个程序的设计要求 同个上下文敏 感的帮助系统加到一个已存在的程序中。 监听者机制允许你调用addXXXlistener方法任意 多次,而且,你可以根据你的设计需要指定任意多 个不同的监听者。事件发生时,所有被注册的监听 者的处理器都会被调用。
捕获事件
public boolean action (Event evt, Object arg) { if(arg.equals("Button 1")) getAppletContext().showStatus("Button 1"); else if(arg.equals("Button 2")) getAppletContext().showStatus("Button 2"); // Let the base class handle it: else return super.action(evt, arg); return true; // We've handled it here }
AWT事件处理机制
什么是事件? 事件-描述发生了什么的对象 事件源-事件的产生器 事件处理器-接收事件、解释事 件并处理用户交互的方法
AWT事件处理机制
事件源是一个事件的产生者。例如,在 Button组件上点击鼠标会产生以这个 Button 为源的一个ActionEvent. 这个 ActionEvent实例是一个对象,它包含关 于刚才所发生的那个事件的信息的对象 事件处理器就是一个接收事件、解释事 件并处理用户交互的方法。
你定义的Listener可以继承Adapter类,而且只需重写你所需要的方 法。例如:实现每个Listener接口的所有方法的工作量是非常大 的,尤其是MouseListener接口和ComponentListener接口。 以MouseListener接口为例,它定义了如下方法: mouseClicked(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mousePressed(MouseEvent) mouseReleased(MouseEvent) 为了方便起见,Java语言提供了Adapters类,用来实现含有 多个方法的类。这些Adapters类中的方法是空的。 你可以继承Adapters类,而且只需重写你所需要的方法。
相关文档
最新文档