AWT事件处理机制
- 格式:ppt
- 大小:215.00 KB
- 文档页数:18
一、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.(抽象)类不能被实例化,它不具备实际功能,只用于衍生子类。
事件驱动程序设计图形用户界面是静态的,它应该能够响应用户的操作。
比如,当用户在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。
第一章思考题】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结构。
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(鼠标事件:鼠标单击、移动)。
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的事件处理机制包括_____、事件和事件处理者。
第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类创建复选框,它们之间互不影响。