ActionEvent事件处理机制
事件驱动程序设计
事件驱动程序设计(英语:Event-driven programming)是一种电脑程序设计模型。
这种模型的程序运行流程是由用户的动作(如鼠标的按键,键盘的按键动作)或者是由其他程序的消息来决定的。
相对于批处理程序设计(batch programming)而言,程序运行的流程是由程序员来决定。
批量的程序设计在初级程序设计教学课程上是一种方式。
然而,事件驱动程序设计这种设计模型是在交互程序(Interactive program)的情况下孕育而生的。
事件驱动程序可以由任何编程语言来实现,然而使用某些语言来撰写会比其他的语言来的简单。
有些集成开发环境(简称IDE)也会影响实现事件驱动程序设计的难易程度。
有的IDE 会使的开发工作变的很简单,有的则否。
取代传统上一次等待一个完整的指令然后再做运行的方式,事件驱动程序模型下的系统,基本上的架构是预先设计一个事件循环所形成的程序,这个事件循环程序不断地检查目前要处理的信息,根据要处理的信息运行一个触发函数进行必要的处理。
其中这个外部信息可能来自一个目录夹中的文件,可能来自键盘或鼠标的动作,或者是一个时间事件。
对一个事件驱动(event driven)系统进行程序设计,因此可以视为改写系统默认触发函数的行为,来符合自己需要的一种动作。
输入的事件可以放进事件循环或者是经由已经注册的中断处理器来与硬件事件交互;而许多的软件系统使用了混和这两种技术的处理。
预先设计好的算法确定了一件事,那就是当他们被需要的时候,就会在适当的时机被触发。
也因此提供了一个模拟中断驱动环境(interrupt driven environment)的软件抽象架构。
事件驱动程序设计基本上包含了许多小程序片段,这些小程序片段被称为事件处理器并且被用来回应外部的事件与分发事件。
通常尚未被事件处理器处理的事件,都会被系统放在一个称为事件队列的数据结构中,等待被处理。
许多情况下,事件处理器可以自己触发事件,因此也可能形成一个事件串。
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(鼠标事件:鼠标单击、移动)。
第13章事件处理(第4版)
实现上述的接口,针对想要捕获的事件编写方法代码 。如要捕获单击按钮事件,就要为ActionListener接口 里的actionPerformed()方法编写代码。
为事件监听者创建一个对象,让自己的组件和方法完 成对它的注册,方法是在监听者接口的名字里加入一 个前缀“add”,如addActionListener()
待用户通过鼠标、键盘给它通知(消息驱动), 它再根据这个通知的内容进行相应的处理(事件 驱动)。 通常一个键盘或鼠标操作会引发一个系统预先定 义好的事件,用户只需编写代码,定义每个特定 事件发生时程序应做出何种响应即可。
3
13.1 委托事件处理
事件(event):用户使用鼠标或键盘对窗口中的组 件进行交互时所发生的事情。对这些事件做出响 应的程序,称为事件处理程序(Event Handler)。
见教材例13.5
20
13.6 文本组件及相应的事件处理
文本组件所触发的事件主要有动作事件 ActionEvent和文本变化事件CaretEvent 。 见教材例13.6
21
13.7 窗口组件及窗口事件处理
Window类的任何子类都可能触发下列的窗口事 件:打开窗口、正在关闭窗口、关闭窗口、激活窗 口、变成非活动窗口、最小化窗口和还原窗口。 Window类常用方法见教材表13.8
5
13.1 委托事件处理
Java语言规定:为了让监听者能对事件源发生的 事件进行处理,创建该监听者对象的类必须声明 实现相应的监听者接口或继承相应的适配类,即 必须在类体中具体定义该接口中所有方法的方法 体或覆盖适配器类中的相应方法,以供监听者自 动调用相应事件处理方法来完成对应事件的任务 ,这些处理事件的方法就是事件处理程序。
JCheckBoxMenuItem类的构造方法及常用方法 见教材表13.30、13.31。
事件类型——精选推荐
事件类型个⼈分类:1.所有事件类型:Java将所有组件可能发⽣的事件进⾏分类,具有共同特征的事件被抽象为⼀个事件类AWTEvent,其中包括ActionEvent类(动作事件)、MouseEvent类(⿏标事件)、KeyEvent类(键盘事件)等。
表列出了常⽤Java事件类、处理该事件的接⼝及接⼝中的⽅法。
常⽤Java事件类、处理该事件的接⼝及接⼝中的⽅法事件类/接⼝名称接⼝⽅法及说明ActionEvent动作事件类ActionListener接⼝actionPerformed(ActionEvent e)单击按钮、选择菜单项或在⽂本框中按回车时AdjustmentEvent调整事件类AdjustmentListener接⼝adjustmentValueChanged(AdjustmentEvent e)当改变滚动条滑块位置时ComponentEvent组件事件类ComponentListener接⼝componentMoved(ComponentEvent e)组件移动时componentHidden(ComponentEvent e)组件隐藏时componentResized(ComponentEvent e)组件缩放时componentShown(ComponentEvent e)组件显⽰时ContainerEvent容器事件类ContainerListener接⼝componentAdded(ContainerEvent e)添加组件时componentRemoved(ContainerEvent e) 移除组件时FocusEvent焦点事件类FocusListener接⼝focusGained(FocusEvent e)组件获得焦点时focusLost(FocusEvent e)组件失去焦点时ItemEvent选择事件类ItemListener接⼝itemStateChanged(ItemEvent e)选择复选框、选项框、单击列表框、选中带复选框菜单时KeyEvent键盘事件类KeyListener接⼝keyPressed(KeyEvent e)键按下时keyReleased(KeyEvent e) 键释放时keyTyped(KeyEvent e)击键时MouseEvent⿏标事件类MouseListener接⼝mouseClicked(MouseEvent e) 单击⿏标时mouseEntered(MouseEvent e)⿏标进⼊时mouseExited(MouseEvent e)⿏标离开时mousePressed(MouseEvent e)⿏标键按下时mouseReleased(MouseEvent e) ⿏标键释放时MouseEvent⿏标移动事件类MouseMotionListener接⼝mouseDragged(MouseEvent e)⿏标拖放时mouseMoved(MouseEvent e)⿏标移动时TextEvent⽂本事件类TextListener接⼝textValueChanged(TextEvent e)⽂本框、多⾏⽂本框内容修改时WindowEvent窗⼝事件类WindowListener接⼝windowOpened(WindowEvent e)窗⼝打开后windowClosed(WindowEvent e)窗⼝关闭后windowClosing(WindowEvent e)窗⼝关闭时windowActivated(WindowEvent e)窗⼝激活时windowDeactivated(WindowEvent e) 窗⼝失去焦点时windowIconified(WindowEvent e)窗⼝最⼩化时windowDeiconified(WindowEvent e) 最⼩化窗⼝还原时当多个事件源触发的事件由⼀个共同的监听器处理时,我们可以通过getSource()⽅法判断当前的事件源是哪⼀个组件。
事件流程总结
概述事件处理流程分3个步骤,1)添加事件监听(初始化),2产生事件(运行时),3)执行事件(运行时)。
1)首先将每个组件上配置的事件监听(可多个)注册到组件自己的监听列表中。
UIComponentBaseprivate List<FacesListener> listeners;//组件自身的监听列表addFacesListener(FacesListener listener) {listeners.add(listener);}一般情况下注册监听器是在构造组件树时完成的。
即由jsp tag或facelet tag来完成。
每个tag调用componentXX.addFacesListener来将componentXX上配置的监听器添加到componentXX的listeners中。
<h:inputText><f:valueChangeListener type="com.corejsf.CountryListener"/></ h:inputText>也可以将监听注册到其它组件上,比如f:phaseListener会注册到root上参加facelet 的PhaseListenerHandlerUIViewRoot root = ComponentSupport.getViewRoot(ctx, parent);//寻找的是root 而不是parent。
PhaseListener pl = new LazyPhaseListener(this.listenerType, b);root.addPhaseListener(pl);2)运行时的每个阶段组件都可能产生事件,//每阶段都先处理页面阶段事件,再处理其它事件。
//----处理阶段事件---- notifyPhaseListeners。
---//XXXXXXX产生的事件不存储直接就被处理掉XXXXX PhaseEvent event = createPhaseEvent(context, phaseId);Iterator iter = phaseListeners.iterator();While{curListener = (PhaseListener)iter.next();curListener.beforePhase(event);//XXXXXXX产生的事件先被存储,然后在适当的时机被处理XXXXX //---- processDecodes ---notifyPhaseListeners。
实验题目
实验一 Java语言概述【实验目的】1.掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序。
2.熟悉Java应用程序的基本结构,并能联合编译应用程序所需要的类。
文件保存要求:在D:盘新建文件夹“学号”,在“D:\ 学号”下新建文件夹“timu1”。
题目1的文件保存在“timu1”中,以下依次类推。
【题目1】1、实验要求:编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。
2、程序模板:请按模板要求,将【代码】替换为Java程序代码。
3、实验后的练习a.编译器怎样提示丢失大括号的错误。
b.编译器怎样提示语句丢失分号的错误。
c.编译器怎样提示将System写成system这一错误。
d.编译器怎样提示将String写成string这一错误。
【题目2】1、实验要求:编写3个源文件:、、,每个源文件只有一个类。
含有应用程序的主类(含有main方法),并使用了Teacher和Student类。
将3个源文件保存到同一目录,D:\timu2,然后编译。
2、程序模板:请按模板要求,将【代码】替换为Java程序代码。
3、实验后的练习a.将编译通过后,不断地修改源文件中的【代码2】。
比如,在命令行窗口输出“我是语文老师”或“我是数学老师”。
要求每次修改源文件后,单独编译,然后直接运行应用程序(不要再编译)。
b.如果需要编译某个目录下的全部Java源文件,如D:\1001目录,可以使用如下命令:D:\1001>javac *.java请练习上述命令。
【题目3】1、实验要求:课本第15页习题2、实验后的练习习题8.(4)实验四类与对象【实验目的】1.掌握使用类来封装对象的属性和行为。
2.掌握对象的组合以及参数传递。
3.掌握类变量与实例变量,以及类方法与实例方法的区别。
文件保存要求:在D:盘新建文件夹“shiyan04”,在“D:\ 20120shiyan04”下新建文件夹“timu1”。
谈Java技术中的事件处理与应用
[1] 《Java 程序设计实践教程》刘万军 宋强 清华大学出 版社 2006 年 9 月
[2] 《Java 编程技术》孙一林 彭波 机械工业出版社 2008 年 6月
(收稿日期:20 11. 05 .05 )
·64·
事件源
触发的事件类的类型Button NhomakorabeaActionEvent
CheckBox
ActionEve nt、ItemEvent
—— —— —— —— —— —— —— 作者简介:邢素萍(1957-),女,江苏南京人,南京工业职业技术学院教授,研究方向:Java 技术,南京,210046
王 健南 (1957- ),男 ,江 苏南 京人 ,南 京工 业职 业技 术学 院教 授, 研究 方向 :数 据库 技术 ,教 育技 术, 南京 ,210046
Microcomputer Applications Vol. 27, No.12, 2011
技术交流
微型电脑应用
2011 年第 27 卷第 12 期
文章编号:100 7-757X(2011)12-0063-02
谈 Java 技 术 中 的 事 件 处 理 与 应 用
邢素萍,王健南
摘 要:简述了 JAVA 语言面向对象程序设计中事件处理的基本方法,并通过一个包含命令按钮的实例说明了编程基本原则。
Java 把事件类分为语义事件和底层事件,语义事件直接 继承自 AWTEvent 类。如: ActionEvent、Adjustm enEvent
图2
在 AWT 组件中,有的只是触发一个事件处理类,而有 的可能触发几个事件处理类,给出常用组件与可能触发事件 的关系,如表 1 所示:
表 1 事件源与触发的事件类类型的关系
AWT事件处理机制
AWT事件处理机制在事件处理的过程中主要涉及3类对象1.事件,⽤户对界⾯操作在Java语⾔上的描述以类的形式出现,例如键盘操作对应的事件类是KeyEvent2.事件源,事件发⽣的场所,通常是各个组件,例如按钮Button3.事件处理者,接收事件对象并对其进⾏处理的对象同⼀个事件源可能发⽣多种事件,所以Java采取授权处理机制,事件源把⾃⾝可能发⽣的事件分别授权给不同的事件处理者进⾏处理。
有时也将事件处理者称为监听器,因为监听器时刻监听事件源发⽣的事件类型,如果该事件类型与⾃⼰所负责处理的事件类型⼀致,就马上进⾏处理授权模型把事件的处理委托给外部处理实体进⾏处理,实现将事件源和监听器分开的机制。
事件处理者(监听器)通常是⼀个类,该类如果能够处理某种类型的事件,就必须实现与该事件类型相对应的接⼝import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class ep2_6 {public static void main (String[] args){Frame f=new Frame();Button b1=new Button("1");b1.addActionListener(new ButtonHandler());//注册监听器进⾏授权,该⽅法参数是事件处理对象f.setLayout(new FlowLayout());f.add(b1);f.setSize(100, 100);f.setVisible(true);}class ButtonHandler1 implements ActionListener//实现接⼝ActionListener才能做事件ActionEventd的处理者{public void actionPerformed1(ActionEvent e)//系统产⽣的ActionEvent事件对象被当作参数传递给该⽅法{System.out.println("处理");}@Overridepublic void actionPerformed(ActionEvent e) {// TODO ⾃动⽣成的⽅法存根}}}。
南邮JAVA期末考试
第一章1.java语言的特点。
Java是一种简单的、面向对象的、分布式的、解释执行的、健壮的、安全的、结构中立的、可移植的、高效率的、多线程的和动态的语言。
2.java程序的两种类型应用程序java Application和应用小程序java Applet。
3.java语言的平台组成:标准版J2SE 微型版J2ME 企业版J2EE4.在DOS环境下,java的编译程序命令javac,和执行程序命令java5.Java语言的跨平台机制原理:跨平台是指编写的程序不受操作系统的限制,可以应用中各种操作系统环境下,即“一次编译,到处运行”。
Java的源代码经过编译后生成字节码class文件,只要在任意的计算机上安装了能执行字节码的Java虚拟机就可以执行,不同的操作系统有不同的Java虚拟机来执行字节码文件,对于小程序的字节码文件则由浏览器负责解释执行。
6.java的字符编码是Unicode编码,占16位比特。
7.Java的异常处理模型基于三种操作5个关键字:声明异常、抛出异常和捕获异常。
Try、catch、throw、throws、finally。
8.当我们想自己捕获并处理异常时用try-catch-finally结构。
9.Java程序常出现的三类错误:语法错误,运行时错误,逻辑错误第二章10.面向对象技术的三个重要特点。
封装、继承、多态11.this super关键字的含义?this表明对象自身的引用、super对父类饮用12.重载和覆盖的概念:重载是指定义多个方法名相同但参数不同的方法。
覆盖是指子类定义了与其超类完全相同的方法即子类的方法覆盖了超类的方法。
13.static关键字声明的属性或方法是和类相关的,而不是和特定的对象相关,这类属性和方法称为类变量和类方法。
类方法和类变量既可以通过类的对象调用,也可以通过类名调用。
而实例方法和实例变量只能通过类的对象调用。
14.在一个Java源程序文件中,只能有一个main方法。
java 单击事件
java 单击事件ActionEvent单击事件是Java GUI中比较常见的事件之一,是高级事件。
单击按钮、单选按钮和菜单项等都会触发相应的ActionEvent事件。
在下拉菜单中,单击某一个菜单项时,会执行相关操作。
其实质上是使用菜单项的单击事件,即ActionEvent事件。
当单击上面菜单项事件源时,会触发Actio nEvent事件,即ActionEvent类创建一个实例化对象。
通过ActionEvent类的getActionCommand()方法,可以获取触发事件的事件源名称。
一个类如果要成为ActionEvent事件的监听器,必须要继承ActionListener接口。
ActionListener接口具有一个名称为actionPerformed(ActionEvent e)的方法。
下面创建一个案例,来说明单击事件的使用。
代码如下所示。
单项itemNative、itemMotif、itemMetal和itemColor。
在下面分别为四个菜单项添加相应的事件,代码“itemNative.addActionListener(new ActionListener(){}”表示为it emNative添加了一个ActionEvent事件的匿名类,在实现的方法actionPerformed()中,设置要实现操作的代码。
其他菜单项依此类推。
执行上述代码,会显示初始化窗口。
单击【窗口风格】菜单,会显示【系统平台风格】、【Motif风格】和【跨平台风格】三个菜单项。
单击【Motif风格】、【系统平台风格】或【跨平台风格】菜单项,会改变窗体的风格,如图10-12所示。
单击【改变颜色】|【选择颜色】菜单项,弹出颜色选择框,选择颜色并单击【确定】按钮,改变窗体的颜色,如图10-13所示。
图10-12 窗口风格图10-13 选择颜色。
java中addactionlistener用法
Java中addActionListener用法在Java编程中,addActionListener是一个重要的方法,用于为GUI组件添加事件监听器。
本文将详细介绍addActionListener的用法,包括其作用、使用步骤以及示例代码。
1. addActionListener的作用addActionListener方法用于为按钮等可交互的GUI组件添加事件监听器,以便在用户与组件交互时执行相应的操作。
当用户点击按钮时,会触发一个事件,通过addActionListener方法可以为按钮注册一个监听器,当事件发生时,监听器中的代码将被执行。
2. addActionListener的使用步骤使用addActionListener方法需要按照以下步骤进行:步骤1:创建GUI组件首先,需要创建一个GUI组件,例如一个按钮,以便用户可以与之交互。
可以使用Swing或JavaFX等库来创建GUI组件。
步骤2:创建事件监听器接下来,需要创建一个实现ActionListener接口的事件监听器类。
可以通过实现ActionListener接口来定义自己的事件处理逻辑。
import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class MyActionListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// 在这里编写事件处理逻辑}}步骤3:为GUI组件添加事件监听器在创建GUI组件后,可以通过addActionListener方法为其添加事件监听器。
将步骤2中创建的事件监听器对象作为参数传递给addActionListener方法。
import javax.swing.JButton;public class Main {public static void main(String[] args) {JButton button = new JButton("Click me");button.addActionListener(new MyActionListener());}}步骤4:编写事件处理逻辑在步骤2中创建的事件监听器类中,需要编写事件处理逻辑。
7.4+Java的事件处理
7.4.3 文本事件(TextEvent)的处理 文本事件(TextEvent)的处理
TextEvent类只包含一个事件,即代表文本区域中 类只包含一个事件, 类只包含一个事件 文本变化的事件TEXT-VALUE-CHANGED,在文 , 文本变化的事件 本区域中改变文本内容。例如,删除字符、 本区域中改变文本内容。例如,删除字符、键入 字符都将引发这个事件。这个事件比较简单,不 字符都将引发这个事件。这个事件比较简单, 需要特别判断事件类型的方法和常量。 需要特别判断事件类型的方法和常量。 Java中用于文本处理的基本组件有两种:单行文本 中用于文本处理的基本组件有两种: 中用于文本处理的基本组件有两种 框TextField和多行文本区域 和多行文本区域TextArea,它们都是 , TextComponent的子类。 的子类。 的子类
7.4.4 选择事件(ItemEvent)的处理 选择事件(ItemEvent)的处理
ItemEvent类只包含一个事件,即代表选择项的选 类只包含一个事件, 类只包含一个事件 中状态发生变化的事件ITEM-STATE-CHANGED。 。 中状态发生变化的事件 引发这类事件的动作包括: 引发这类事件的动作包括: (1) 改变列表类 改变列表类 列表类List对象选项的选中或不选中状态。 对象选项的选中或不选中状态 对象选项的选中或不选中状态。 (2) 改变下拉列表类 改变下拉列表类 下拉列表类Choice对象选项的选中或不选中 对象选项的选中或不选中 对象 状态。 状态。 复选按钮类Checkbox对象的选中或不选中状 对象的选中或不选中状 (3) 改变复选按钮类 改变复选按钮类 对象 态。 (4) 改变检测盒菜单项 改变检测盒菜单项CheckboxMenuItem对象的选 对象的选 中或不选中状态。 中或不选中状态。
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第五章习题及答案
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{
监听器原理和实现
特点:
匿名内部类一定是跟在new的后面,用其隐含实现一个接口或一个类,没有类名,根据多态,我们使用其父类名。因为匿名内部类属于局部类,所以局部类的所有限制对其生效。匿名内部类是唯一一种无构造方法的类。匿名内部类在编译时,系统自动起名Out$1.class。如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。
System.out.println("Hello World!!!") ;
}
};
classX {
publicvoidfun1(){
this.fun2(newB()) ;
}
publicvoidfun2(A a){
a.printInfo() ;
}
};
publicclassNoInnerClassDemo01{
内部类:在一个类的内部还有另一个类。那么匿名类,如果一个类在整个操作中,只使用一次的话,就可以将其定义成匿名内部类。
匿名内部类是在接口及抽象类的基础上发展起来的。
interfaceA{
publicvoidprintInfo() ;//
}
classBimplementsA{// 实现接口
fo(){
}
};
以上所做的是,在fun2的括号中实现接口,并且给出具体实现,其实就是匿名实现接口类,代替上一例中的B类。
监听器模型涉及以下三个对象,模型图如下:
(1)事件:用户对组件的一个操作,称之为一个事件
(2)事件源:发生事件的组件就是事件源
(3)事件监听器(就是事件处理器):监听并负责处理事件的方法
执行顺序如下:
1、给事件源注册监听器(事件处理器)
2、组件接受外部作用,也就是事件被触发
事件监听机制原理
事件监听机制原理事件监听机制原理事件监听机制是现代编程语言中常用的一种编程模式,它能够对应用程序中的某些行为进行监控,当被监听的行为发生时,自动触发相应的处理逻辑。
一个按钮被点击后可以触发一个事件监听器,从而执行一个指定的功能。
这种机制可以提高应用程序的交互性,使得用户与应用程序之间的交互更加自然和方便。
本文将介绍事件监听机制的原理。
1. 事件在事件监听机制中,事件是指与应用程序相关的某些行为或状态发生改变所导致的某些动作。
用户点击了一个按钮,这就是一个事件,当这个事件被触发时,就可以执行相应的处理逻辑。
事件可以分为两类:• 内部事件:指应用程序内部的某些状态或行为发生变化而引起的事件,例如应用程序的某个对象被创建或销毁,某个变量的值发生改变,某个错误发生等。
• 外部事件:指应用程序与外部环境之间的交互所引发的事件,例如用户的鼠标点击,键盘输入等。
2. 事件源在事件监听机制中,事件源是指能够触发事件的具体对象。
一个按钮就是一个事件源,当用户单击该按钮时,按钮就成为了事件源,触发了相应的事件。
事件源可以分为两类:• 内部事件源:指应用程序内部的一些对象或状态,例如某个变量的值发生变化,某个程序运行状态发生改变等。
• 外部事件源:指应用程序与外部环境之间的交互所涉及的对象或状态,例如用户的鼠标点击、键盘输入等。
3. 事件监听器事件监听器是一种特殊的类,它的主要作用是监听某个事件的发生,并在事件发生时执行相应的处理逻辑。
事件监听器通常包括三部分内容:• 事件源:指监听哪个事件源上的事件。
• 监听器:指用于监听事件的类,通常实现了一个特定的接口。
• 处理逻辑:指事件发生后实际执行的代码。
当事件源上的事件发生时,会自动调用事件监听器中定义的事件处理方法。
通常情况下,一个事件源可以同时拥有多个事件监听器,每个监听器都被注册到事件源中,并在事件发生时按照顺序依次被执行。
4. 事件分发器事件分发器是用来将事件源触发的事件分发给相应的事件监听器的一种机制,它是事件监听机制的核心部分。
actionevent内的方法
一、事件驱动编程概述事件驱动编程是一种常见的编程范式,在此范式下,程序的执行流程是由事件的发生和相应的处理方法来驱动的。
在面向对象的编程中,事件通常由某个对象的状态变化、用户的操作或者外部的信号等触发,而事件的处理方法则是对这些事件的响应和处理。
二、ActionEvent内的方法在Java中,ActionEvent是事件处理机制中最为常见的事件之一。
当用户执行某个动作时,例如点击按钮或者选择菜单项,就会触发ActionEvent事件。
而在处理ActionEvent事件时,可以使用一些内置的方法来进行相应的处理。
1. getActionCommand()方法getActionCommand()方法用于获取触发事件的组件所关联的命令字符串。
在使用Swing组件(如按钮或菜单项)时,可以通过设置组件的命令字符串来标识不同的动作,当事件发生时,可以通过getActionCommand()方法来获取对应的命令字符串,从而进行相应的处理。
2. getSource()方法getSource()方法用于获取触发事件的组件对象。
通过该方法可以获取到产生事件的源组件,从而可以针对具体的组件进行相应的操作。
可以根据具体的源组件来判断是哪个按钮被点击,或者是哪个菜单项被选择。
3. getModifiers()方法getModifiers()方法用于获取事件发生时的修饰键。
在用户执行某个动作时,可能会同时按下一些修饰键(如Shift、Ctrl等),这些修饰键可以通过getModifiers()方法来获取,从而可以根据具体的修饰键来进行相应的处理。
4. paramString()方法paramString()方法用于返回一个描述该事件的字符串。
该字符串包括事件的类型、触发事件的组件对象等信息,可以用于在调试或者记录日志时进行事件的跟踪和定位。
5. setSource()方法setSource()方法用于设置事件的源对象。
通常情况下,事件的源对象是由系统自动设置的,但是在某些特殊的情况下,可能需要手动设置事件的源对象。
金蝶actionevent参数 -回复
金蝶actionevent参数-回复金蝶ActionEvent参数是指在金蝶软件开发中,用于处理特定动作事件的参数。
在金蝶软件开发中,动作事件通常是用户在软件界面上进行的操作,如点击按钮、选择菜单等。
金蝶ActionEvent参数的主要作用是提供关于触发动作事件的详细信息,以便开发者能够根据这些信息进行相应的处理。
通过分析ActionEvent 参数,开发者可以获取事件源、事件名称、事件类型以及其他与事件相关的信息,从而实现灵活的事件响应和业务逻辑处理。
下面将一步一步回答关于金蝶ActionEvent参数的相关问题。
1. 什么是金蝶ActionEvent参数?金蝶ActionEvent参数是指在金蝶软件开发中,用于处理特定动作事件的参数。
它提供了与事件相关的信息,如事件源、事件名称、事件类型等。
2. 金蝶ActionEvent参数的作用是什么?金蝶ActionEvent参数的主要作用是提供事件的详细信息,以便开发者能够根据这些信息进行相应的处理。
通过分析ActionEvent参数,开发者可以获取事件源、事件名称、事件类型以及其他与事件相关的信息,从而实现灵活的事件响应和业务逻辑处理。
3. 金蝶ActionEvent参数有哪些常用属性?金蝶ActionEvent参数有一些常用属性,包括事件源(source)、事件名称(actionCommand)、事件类型(id)、事件时间(when)等。
其中,事件源用于表示事件的来源控件,事件名称用于标识不同的事件,事件类型用于指示事件的类型,事件时间用于记录事件发生的时间。
4. 如何获取金蝶ActionEvent参数的值?在金蝶软件开发中,可以通过调用ActionEvent对象的相应方法来获取参数的值。
例如,通过调用getSource()方法可以获取事件源的值,调用getActionCommand()方法可以获取事件名称的值,调用getID()方法可以获取事件类型的值,调用getWhen()方法可以获取事件时间的值等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类 ActionEventng.Objectjava.util.EventObjectjava.awt.AWTEventjava.awt.event.ActionEvent所有已实现的接口:Serializablepublic class ActionEventextends AWTEvent指示发生了组件定义的动作的语义事件。
当特定于组件的动作(比如被按下)发生时,由组件(比如Button)生成此高级别事件。
事件被传递给每一个ActionListener对象,这些对象是使用组件的addActionListener方法注册的,用以接收这类事件。
注:要使用键盘在Button上触发ActionEvent,请使用空格键。
实现ActionListener接口的对象在发生事件时获取此ActionEvent。
因此,侦听器不必处理个别鼠标移动和鼠标单击的细节,而是可以处理像“按下按钮”这样的“有意义”(语义)事件。
从以下版本开始:1.1另请参见:ActionListener, Tutorial: Java 1.1 Event Model, 序列化表格字段摘要static int ACTION_FIRST用于标识动作事件的 ID 序列的起始编号。
static int ACTION_LAST用于标识动作事件的 ID 序列的结束编号。
static int ACTION_PERFORMED此事件 id 指示发生了有意义的动作。
static int ALT_MASKalt 修饰符。
static int CTRL_MASKCtrl 修饰符。
static int META_MASKmeta 修饰符。
static int SHIFT_MASKshift 修饰符。
从类 java.awt.AWTEvent继承的字段ACTION_EVENT_MASK, ADJUSTMENT_EVENT_MASK, COMPONENT_EVENT_MASK, consumed, CONTAINER_EVENT_MASK, FOCUS_EVENT_MASK,HIERARCHY_BOUNDS_EVENT_MASK, HIERARCHY_EVENT_MASK, id,INPUT_METHOD_EVENT_MASK, INVOCATION_EVENT_MASK, ITEM_EVENT_MASK, KEY_EVENT_MASK, MOUSE_EVENT_MASK, MOUSE_MOTION_EVENT_MASK, MOUSE_WHEEL_EVENT_MASK, PAINT_EVENT_MASK, RESERVED_ID_MAX,TEXT_EVENT_MASK, WINDOW_EVENT_MASK, WINDOW_FOCUS_EVENT_MASK, WINDOW_STATE_EVENT_MASK从类 java.util.EventObject继承的字段source构造方法摘要ActionEvent(Object source, int id, String command)构造一个 ActionEvent 对象。
ActionEvent(Object source, int id, String command, int modifiers) 使用修改键构造一个 ActionEvent 对象。
ActionEvent(Object source, int id, String command, long when,int modifiers)使用指定修改键和时间戳构造一个 ActionEvent 对象。
方法摘要String getActionCommand()返回与此动作相关的命令字符串。
int getModifiers()返回发生此动作事件期间按下的修改键。
long getWhen()返回发生此事件时的时间戳。
String paramString()返回标识此动作事件的参数字符串。
从类 java.awt.AWTEvent继承的方法consume, getID, isConsumed, setSource, toString从类 java.util.EventObject继承的方法getSource从类 ng.Object继承的方法clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait字段详细信息SHIFT_MASKpublic static final int SHIFT_MASKshift 修饰符。
指示 shift 键在发生事件期间是否被按下的指示器。
另请参见:常量字段值CTRL_MASKpublic static final int CTRL_MASKCtrl 修饰符。
指示 Ctrl 键在发生事件期间是否被按下的指示器。
常量字段值META_MASKpublic static final int META_MASKmeta 修饰符。
指示 meta 键在发生事件期间是否被按下的指示器。
另请参见:常量字段值ALT_MASKpublic static final int ALT_MASKalt 修饰符。
指示 alt 键在发生事件期间是否被按下的指示器。
另请参见:常量字段值ACTION_FIRSTpublic static final int ACTION_FIRST用于标识动作事件的 ID 序列的起始编号。
另请参见:常量字段值ACTION_LASTpublic static final int ACTION_LAST用于标识动作事件的 ID 序列的结束编号。
另请参见:常量字段值ACTION_PERFORMEDpublic static final int ACTION_PERFORMED此事件 id 指示发生了有意义的动作。
常量字段值构造方法详细信息ActionEventpublic ActionEvent(Object source,int id,String command)构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。
如果 source 为 null,则此方法抛出 IllegalArgumentException。
为 null 的 command 字符串是合法的,但不建议使用。
参数:source - 发起事件的对象id - 标识事件的整数command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)抛出:IllegalArgumentException - 如果 source 为 nullActionEventpublic ActionEvent(Object source,int id,String command,int modifiers)使用修改键构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。
如果 source 为 null,则此方法抛出 IllegalArgumentException。
为 null 的 command 字符串是合法的,但不建议使用。
参数:source - 发起事件的对象id - 标识事件的整数command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)modifiers - 进行此动作期间按下的修改键抛出:IllegalArgumentException - 如果 source 为 nullActionEventpublic ActionEvent(Object source,int id,String command,long when,int modifiers)使用指定修改键和时间戳构造一个 ActionEvent 对象。
注意,传入无效 id 会导致未指定的行为。
如果 source 为 null,则此方法抛出 IllegalArgumentException。
为 null 的 command 字符串是合法的,但不建议使用。
参数:source - 发起事件的对象id - 标识事件的整数command - 一个字符串,它可以用来指定与事件所相关的一条命令(可能是几个中的一个)when - 发生事件的时间modifiers - 进行此动作期间按下的修改键抛出:IllegalArgumentException - 如果 source 为 null从以下版本开始:1.4方法详细信息getActionCommandpublic String getActionCommand()返回与此动作相关的命令字符串。
这使得 "modal" 组件可以由其当前的状态,通过此字符串来得到它能够产生的几个命令之一。
例如,单个按钮可以在“显示详细信息”和“隐藏详细信息”之间切换。
在所有情况下,源对象和事件都将是相同的,但命令字符串将会标识出实际对应的动作。
注意,如果将 null 命令字符串传递给此 ActionEvent 的构造方法,则此方法返回 null。
返回:标识此事件命令的字符串getWhenpublic long getWhen()返回发生此事件时的时间戳。
因为 ActionEvent 是一个高级别语义事件,所以时间戳通常与基础 InputEvent 相同。
返回:此事件的时间戳从以下版本开始:1.4getModifierspublic int getModifiers()返回发生此动作事件期间按下的修改键。
返回:修饰符常量的按位或paramStringpublic String paramString()返回标识此动作事件的参数字符串。
此方法对于事件记录和调试很有用。
覆盖:类AWTEvent中的paramString返回:标识事件及其相关命令的字符串。