Java语言事件处理方式


使用匿名内部类
• 匿名内部类(Anonymous Inner Class),
– 没有名字的内部类,这是Java为了方便编写程序而设计的一个机制。 – 因为有时候有的内部类只需要创建一个它的对象就可以了,以后再不会
用到这个类 – 这时候使用匿名内部类就比较合适,而且也免去了给它取名字的烦恼
• 特别适用于需要继承其它父类(例如Applet程序,主类必须继承 JApplet类或Applet类)的场合
– 根据java语法规则,不能再继承适配器类 – 使用匿名内部类使得程序可读性更加清晰
使用匿名内部类样例
import java.awt.event.*; import javax.swing.*; public class Demo{
JFrame f; public Demo() {
f=new JFrame(); f.setSize(300,150); f.show(); f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); f.addMouseListener(new MouseAdapter(){
样例输出
思考题
• Java有哪些事件处理方式?各自如何实现的?
JFrame f; public Demo() {
f=new JFrame(); f.setSize(300,150); f.show(); f.addMouseListener(this); //为窗口增加鼠标事件监听器 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){ f.setTitle(“点击坐标为 (”+e.getX()+“, ”+e.getY()); } public static void main(String[] args){
继承事件监听器适配器类样例
import java.awt.event.*; //载入MouseAdapter所在的包 import javax.swing.*; public class Demo extends MouseAdapter{
JFrame f; public Demo() {
f=new JFrame(); f.setSize(300,150); f.show(); f.addMouseListener(this); f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); } public void mouseClicked(MouseEvent e){ f.setTitle("点击坐标为 ("+e.getX()+", "+e.getY()+")"); } public static void main(String[] args){ new Demo();}}
public void mouseClicked(MouseEvent e){ f.setTitle("点击坐标为 ("+e.getX()+", "+e.getY()+")"); }
}); //为窗口添加鼠标事件监听器语句结束 }
public static void main(String[] args){ new Demo(); }}
new Demo();}}
继承事件监听器适配器类
• Swing提供了一些适配器类×××Adapter;适配器类提
供了×××Listener接口中所有方法的默认实现(实质就 是空方法) • 程序只需编写那些需要进行处理的事件的方法。 • 例如,如果只想对鼠标敲击事件进行处理,如果使用 MouseAdapter类,则只需要重写mouseClicked方法 就可以了
事件处理方式
• 如何实现事件处理程序?
– 实现事件监听器接口 – 继承事件监听器适配器类 – 使用匿名内部类
实现事件监听器接口
• 需要实现接口中所有的方法 – 对于程序不关注的事件方法,也要列出来并使用空方法实现 – 空方法就是没有方法体中没有任何代码
实现事件监听器接口样例
import java.awt.event.*; //载入MouseListener类所在的包 import javax.swing.*; //载入JFrame所在的包 public class Demo implements MouseListener{
合集下载

事件处理4

事件处理4

基本概念
事件源(event source):产生事件的对象。如在 一个按钮上单击鼠标时,该按钮是事件源,会产 生一个ActionEvent类型的事件。
事件监听者(Listener):Java程序把事件进行处理 的方法放在一个类对象中,这个类对象就是事件 监听者。事件源通过调用相应的方法将某个对象 设置为自己的监听者,监听者有专门的方法来处 理事件。
常用方法:
public String getActionCommand()返回与此动作相关的命 令字符串。
public long getWhen()返回发生此事件时的时间戳。 public int getModifiers()返回发生此动作事件期间按下的组
合键。 public Object getSource() 最初发生 Event 的对象。
} public static void main(String[] args){ GUIDemo8 d=new GUIDemo8(); }
}
选项事件类 ItemEvent
当用户在窗口中的带有可选择功能的组件中进行 选取操作时所发生的事件.
选项事件ItemEvent的监听者是ItemListener. 该接口中提供的事件处理方法只有一个 itemStateChanged(ItemEvent e),当组件中 的选项状态改变时,将调用该方法.
public GUIDemo8() { jta=new JTextArea(); jp1=new JPanel(); String[] chatters={"红红","白白","蓝蓝"}; jcb=new JComboBox(chatters); jtf=new JTextField(10); jb=new JButton("发送"); jsp=new JScrollPane(jta);

java的perform用法

java的perform用法

一、介绍perform方法在Java编程语言中,perform方法是一种用于执行特定操作的重要方法。

perform方法可以用于执行诸如事件处理、动作执行等操作,它通常用于处理用户界面的各种事件。

二、perform方法的基本语法perform方法通常是作为接口的一部分,它的基本语法如下所示:```void perform()```在上述语法中,perform方法通常不会返回任何值,它主要用于执行特定的操作。

三、perform方法的常见用法perform方法在Java编程中有一些常见的用法,下面列举了其中的一些:1. 用于按钮点击事件处理perform方法经常用于处理用户界面中按钮的点击事件。

当用户点击按钮时,perform方法会被触发,从而执行相应的操作。

2. 用于菜单项点击事件处理perform方法也可以用于处理菜单项的点击事件。

当用户点击菜单项时,perform方法会被调用,执行相应的操作。

3. 用于动作执行perform方法还可以用于执行某些动作,比如在游戏开发中,perform方法可以用于执行玩家的移动、攻击等动作。

4. 用于事件处理perform方法还可以用于处理各种其他的事件,比如鼠标事件、键盘事件等。

四、perform方法的实际应用举例下面是一个简单的示例,展示了perform方法在Java编程中的实际应用:```javaimport java.awt.*;import java.awt.event.*;public class ButtonTest extends Frame {Button btn;public ButtonTest() {btn = new Button("Click me");btn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {// 执行点击按钮的操作}});}}```在上面的示例中,我们创建了一个按钮,并注册了一个ActionListener,当用户点击按钮时,perform方法会被调用,执行相应的操作。

javafx原理

javafx原理

javafx原理JavaFX是一种用于创建富客户端应用程序的软件平台。

它提供了丰富的图形界面组件和多媒体功能,使开发者可以轻松地构建跨平台的用户界面。

JavaFX的原理是基于Java语言的,它通过使用JavaFX的类库和API来构建图形界面。

JavaFX提供了一套丰富的组件,如按钮、文本框、标签等,开发者可以通过这些组件来创建用户界面。

与传统的Swing相比,JavaFX提供了更加现代化和灵活的界面设计方式,支持CSS样式和FXML布局文件,使界面的设计和实现更加简单和直观。

JavaFX的图形渲染是通过使用JavaFX的渲染引擎实现的。

该引擎使用硬件加速技术,能够充分利用计算机的GPU资源,提供流畅的图形显示效果。

JavaFX的渲染引擎支持2D和3D图形渲染,可以实现复杂的图形效果,如阴影、透明度等。

JavaFX还提供了丰富的多媒体功能,包括音频、视频和动画等。

开发者可以使用JavaFX的多媒体类库来播放音频和视频文件,创建各种动画效果。

JavaFX的多媒体功能非常强大,可以满足各种复杂的多媒体需求。

JavaFX的事件处理是通过使用JavaFX的事件模型实现的。

开发者可以通过注册事件处理器来响应用户界面上的各种事件,如按钮点击、鼠标移动等。

JavaFX的事件模型非常灵活,可以实现各种复杂的事件处理逻辑。

JavaFX还支持与其他编程语言的集成,如JavaScript和HTML。

开发者可以使用JavaFX的Web组件来嵌入Web页面,实现与Web应用的交互。

这使得JavaFX成为一种非常强大的跨平台开发工具,可以在不同的平台上创建统一的用户界面。

总结起来,JavaFX是一种强大的软件平台,通过使用JavaFX的类库和API,开发者可以轻松地创建富客户端应用程序。

它提供了丰富的图形界面组件和多媒体功能,支持现代化的界面设计方式,提供流畅的图形渲染效果,具有灵活的事件处理能力,支持与其他编程语言的集成。

基于Java的可复用事件处理设计与实现

基于Java的可复用事件处理设计与实现
为 了更好 地解 决 软件 复 用 性 和 扩 展 性 问 题 , 计模 设
式 得到 了越 来越 多 的关 注 与应 用 。
反射 ( f tn 是 Jv ec r e o) a li a中非 常突 出 的动 态特 征 , 用 它 可 以加 载 一 个 运 行 时 才 得 知 名 字 的 利 c s, 取 其完 整结 构 , l s获 a 这一 切 是通 过 反 射 A I 成 P完
的可 复用性 、 壮性 和 可维 护性 。 健
接 口, 否则 , A是不 能 与 B进行 交互 的 。
J K 1 0采 用 的事 件 处 理 是 事 件 传 递 机 制 D .
( vn evr Meh i , Eet le c a s 这是 一 种 基 于 继 承 的 事 Di y n m)
结合 Cm ad设 计 模 式 和 Jv 言 的反 射 技 o mn aa语 术, 本文设 计 实 现 了一个 可 复用 的事件 处 理框 架 。
称 v ) 其事 件处 理就 是其 中之一 。一 个完 整 的 u t及 I
1 不 可复用 的事件处理
般情况下 , 在面向对象的程序中 , 有二个对象 A和 B, 如果 A要 与 B进行 交互 , A需要 知 道 B的 则
L U e— i n I P iq a g (col Ifr ao Sho no m tnmd日e i c D】 璀啦 窖 j , b dQ stt 0 l耻黛 md3 ̄ nl y Y na 240 , hn ) Sm ogI tu f s ni e i i lo g , al 05 c i t o l6 a
实现 了一 个可 复用 的事 件 处理 框件处理 ; 设计模式
Dein a d i lme t t n o e s b ee e th n l g b s d o a a s n g mp e n a i fr u a l v n a di a e n J v o n

JavaSwing中处理各组件事件的一般步骤完整版

JavaSwing中处理各组件事件的一般步骤完整版

J a v a S w i n g中处理各组件事件的一般步骤集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]Java Swing中处理各组件事件的一般步骤是:1.新建一个组件(如JButton)。

2.将该组件添加到相应的面板(如JPanel)。

3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。

4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。

以上步骤我们可以用多种方法实现。

但人们通常用二种方法。

第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。

为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。

该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。

通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。

首先,我们利用单个监听器来实现该程序。

我们定义一个名为Simple1的类来包括所有代码。

所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。

以下是代码:import .*;import .*;public class Simple1{private static JFrame frame;dd(myPanel);();(true);}}让我们来看看以上代码是如何工作的。

在main方法中,我们定义了一个JFrame,然后将面板Jpanel添加到窗体中,该面板包括两个按钮。

相应的变量Frame,button1,button2定义在程序的开头部分。

在程序入口main方法中,首先新建Simple1组件,通过构造器建立用户GUI,定义一个面板Jpanle,,增加两个按钮,然后利用将两个按钮加入到一个活动监听器SimpleLister中,最后,两个按钮添加到面板。

Java中的GUI界面设计和事件处理入门

Java中的GUI界面设计和事件处理入门

Java中的GUI界面设计和事件处理入门一、引言Java是一种面向对象的编程语言,具有广泛的应用领域。

在软件开发过程中,GUI界面设计和事件处理是非常重要的一部分。

本文将介绍Java中的GUI界面设计和事件处理的入门知识,以帮助读者了解和掌握这方面的技术。

二、GUI界面设计基础GUI(Graphical User Interface,图形用户界面)是指通过图形、图像和动画等方式来显示信息,提供用户与计算机之间的交互。

在Java中,可以使用Swing和JavaFX等库来进行GUI界面设计。

1. 布局管理器在GUI界面设计中,布局管理器用于管理组件的布局方式。

Java提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout和GridBagLayout等。

使用不同的布局管理器可以实现不同的界面布局效果。

2. 组件组件是GUI界面的基本元素,可以是按钮、文本框、标签、列表框等。

在Java中,可以使用JButton、JTextField、JLabel和JList等类来创建各种组件。

可以设置组件的属性,如大小、位置和样式等。

3. 事件监听器事件监听器用于捕捉用户操作产生的事件,并做出相应的处理。

在Java中,可以使用addActionListener()方法为组件添加监听器,响应用户的点击事件。

事件监听器可以以匿名内部类的形式实现,也可以作为单独的类来处理。

三、GUI界面设计实例下面以一个简单的登录界面为例,介绍如何使用Java中的GUI 界面设计来创建一个具有交互功能的窗体。

1. 导入必要的类库首先需要导入javax.swing和java.awt等类库,以便使用其中的类和方法。

2. 创建窗体可以通过继承JFrame类来创建一个窗体对象,然后设置窗体的标题、大小和关闭方式等属性。

3. 添加组件可以使用JLabel、JTextField和JButton等组件类来创建对应的界面元素,并设置它们的属性和布局。

JAVA语言客观作业及判断题

Java对事件的处理是采用委托方式进行的,即将需要进行事件处理的组件委托给指定的事件处理器进行处理。

答案:正确Java程序是由若干类定义组成的,类定义包括定义类头和定义类体。

答案:正确类的修饰符有静态修饰符static、最终修饰符final、易失修饰符volatile和过度修饰符transient。

答案:错误子类拥有的成员数目大于等于父类拥有的成员数目。

答案:错误Container类的add()方法将GUI组件添加到容器中。

答案:正确Frame,Panel,Apple,Button 4种组件都属于容器组件。

答案:错误在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。

答案:错误在Java的方法中定义一个常量要用const关键字。

答案:错误一个程序里有且只能有一个公共类,它就是主类。

答案:正确最终类不能派生子类。

最终方法不能被覆盖。

答案:正确在Applet中可以调用它的drawImage()方法直接画出一幅图像。

答案:错误一个复选按钮实现的是“二选一”的结构;一个单选按钮实现的是“多选一”的结构。

答案:正确当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。

答案:正确当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。

答案:正确Final类中的属性和方法都必须被final修饰符修饰。

答案:错误接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。

答案:正确新创建的Frame视窗对象,会自动显示在屏幕上。

答案:错误Applet可以运行在浏览器中。

答案:正确Java源程序文件应以.java为后缀名保存,文件内包含几个类的定义就编译生成几个对应的字节码文件。

答案:正确类头定义主要说明类的名字、父类名和接口名。

答案:错误为了提高效率,Java中对多次出现的用双引号括起来的字符串字面量只存储一个对象。

第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。

Java的事件处理机制剖析

一
事件源所产生 的事件相对应的监听接 口,执行接 口中提供 的事 件处理方法 , 方可实现监 听和处理功Biblioteka [ 1 J 。整个事件处理机制 是
、
Jv a a的事件 处理模 式
并 事件 和监 听 Jv 使用了基 于代 理的事件处理模式 ,主要 由事件 、事件 由事件源和监听器协调完成 , 由用户 以及事件源 、 aa 器三种对象参与。 源、 事件监 听器 三部分相互关联 而成 , 当事件发生 时 , 由事件源
如 图 1 示 l 所 3 l 。
用
或多个方法。当发生特定 的事件 时, 就会 调用这些方法 。
二 、a a的事 件 处 理 过 程 圆 Jv
Jv 事件处理过程如下 , J ut aa 以 B t n作事件源为例 。 o
1 创 建 事 件 监 听 器 、
创建用于 响应事件动作发生的监听器对 象。如定 义一个实 现监 听接 口A t n ie e 的类 Jeet此类 的对象 即为监 听器 ci Ls n r o t bvn,
Jv 是一种面向对象程序设计语 言 , v U 图形用户界 对应 的事件监 听器 , 于监 听事 件的产生。事件监听器( ie — aa J a I( a G 用 Ls n t 面 )程序 的执行是 由事件驱动 的。为了实现用户与组成程序的 e) r是接 受事件并实现事件处理 的对象 。 事件监听器必须实现与 G I U 组件 问的交互 , v J a引入 了事件处理机制这一重要技术。 a
ae ButnAcin v n v n rc si ga ne a l f h rga tdJ t t E e t e t o e s s x mpeo epo mmigisrcin . o o e p n a t r n t t s n u o Ke wo d J v y rs aa Ev n a dig et n l h n Ev n o re e t uc s s L se e itn r

谈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 事件源与触发的事件类类型的关系
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档