1、单击此处编辑母版文本样式,第二级,第三级,第四级,*,单击此处编辑母版标题样式,Java,桌面程序开发,目 录,第,1,章,认识,Java,桌面程序,第,2,章,开发第一个,Java,桌面程序,第,3,章,事件处理机制,第,4,章,容器与布局,第,5,章,使用,Swing,常用组件,第,6,章,使用,Swing,高级组件,第,7,章,连上,DB,的,Java,桌面程序,第,8,章,Java,桌面程序实例:联系人管理,第,3,章 事件处理机制,教学要求,1,理解:事件源、事件、事件监听器的概念,授权事件及处理机制,适配器类,2,掌握:为,GUI,添加事件处理的一般过程,编写事件监听器类的多种方
2、式,为组件注册事件监听器对象,3.1,让,GUI,动起来的关键:事件处理机制,初始界面,点击按钮后,点击按钮之后程序能不能动的关键是这段代码:,/,点击按钮程序有所反应的关键:为按钮注册事件监听器,btn.addActionListener(,new,ActionListener(),/,点击按钮后程序的响应代码在这里,public,void,actionPerformed(ActionEvent arg0),msg.setText(,点按钮是有作用的哟!,);,);,授权事件模型进行事件处理三步骤,第一、,确定事件源,Event Source,和事件,Event,,即什么,组件与用户发生了交
3、互事件,发生在事件源上的事件是什么,如被点击的按钮是事件源,按钮被点击的事件叫做动作事件,ActionEvent,。,第二、,实现进行事件处理的事件监听器,Event Listener,,主要是编写事件的处理代码。,第三、,将事件监听器注册给事件源,这样关联之后才能使得事件发生后能执行相应的处理代码。,Java,桌面程序事件处理的过程,在开发,Java,桌面程序时,需要关心的是对什么组件监听什么事件,编写事件监听器类,并将监听器类的对象注册给被监听的组件。,Java,的事件类和监听器接口大多在,java.awt.event,包中,一些,Swing,组件所特有的事件监听器接口则在,javax.s
4、wing.event,中声明。,事件类,事件类及其对应监听器接口,事件类,监听器接口,描述,ActionEvent,ActionListener,监听动作事件的监听者接口,AdjustmentEvent,AdjustmentListener,监听调整事件的监听者接口,ComponentEvent,ComponentListener,监听组件事件的监听者接口,ContainerEvent,ContainerListener,监听容器事件的监听者接口,FocusEvent,FocusListener,监听组件上的焦点事件的监听者接口,ItemEvent,ItemListener,监听选项事件的监听
5、者接口,KeyEvent,KeyListener,监听键盘事件的监听者接口,MouseEvent,MouseListener,监听组件上的鼠标事件的监听者接口,MouseMotionListener,监听组件上的鼠标移动事件的监听者接口,TextEvent,TextListener,监听文本组件事件的监听者接口,WindowEvent,WindowListener,监听窗口事件的监听者接口,3.2,案例:处理按钮点击事件,收集学生信息,学生信息回显,重置后,使用文本框收集用户输入的学生信息,点击,“,确定,”,按钮后将学生信息回显到界面右侧空白区域,点击,“,重置,”,按钮将同时清空文本框填入
6、的信息和右侧的回显信息。,3.2.1,定义事件监听器类,1,、确定需要监听的事件源及事件,此处显然是“确定”和“重置”按钮上的按钮点击事件,ActionEvent,事件。,2,、编写事件监听器类,方式有多种,本节介绍常用的一种方式:界面与事件处理使用同一个类。,3,、将事件监听器类的对象注册给事件源,在这里就是给,2,个按钮注册事件监听器了。按钮点击事件,ActionEvent,对应的事件监听器接口为,ActionListener,,此接口中只包含一个方法:,public void actionPerformed(ActionEvent e),3.2.2,为按钮注册事件监听器,“,确定,”,按
7、钮注册监听器:,b_ok.addActionListener(this);,“,重置,”,按钮注册监听器:,b_reset.addActionListener(this,);,3.2.3,使用内部类实现事件监听器类,输入运算数,做加法,做除法,3.2.4,使用适配器类,监听器接口,适配器类,FocusListener,FocusAdapter,KeyListener,KeyAdapter,MouseListener,MouseAdapter,MouseMotionListener,MouseMotionAdapter,WindowListener,WindowAdapter,这些,已经实现了监
8、听器接口的适配器类,在编写自己的监听器类时就可以改用继承适配器类的方式了,这样,一来,,我们只需要重写必要的方法就可以了,而不需要把不必要的方法也都实现,要点提醒,Java,事件处理机制是让图形用户界面能响应用户的交互动作的关键。,以按钮为例,用户点击按钮之后程序要做出相应,应按照如下的步骤实现按钮的事件处理:,1,、编写监听按钮点击事件(即,ActionEvent,事件)的监听器类,监听器类实现该事件对应的监听器接口即可。监听器类可以采用本类实现方式,匿名内部类方式,普通内部类方式等多种编码方式。,2,、将监听器类的对象注册给按钮。这一步非常重要,如果没有进行注册则点击按钮将不会调用事件处理
9、代码。,其它事件类型及其处理过程都可以参考此步骤进行。,实训任务,实训,3-1,编写桌面程序,显示,2,个数中的较大者。要求界面上提供,2,个文本框用于接收输入,一个确定按钮、一个重置按钮,一个显示结果的标签。在文本框中输入数据并点击确定按钮之后,标签显示,2,数中较大的数;若输入过程中输入了非数字符号,标签要显示提示信息“请输入数字”;若点击了重置按钮,则将文本框和标签都清空。,实训,3-2,编写桌面程序,实现一个能比例,3-3,收集更多学生信息的程序,需要收集的信息可自行指定。,实训,3-3,将例,3-5,的四则运算程序进行改写,要求,+,、,-,、*、,/,按钮的事件处理代码改用匿名内部类实现,直接注册到各个按钮上。,实训,3-4,编写程序,实现利用按钮控制窗体背景颜色的变换,并同时控制当鼠标移入和移出按钮区域的时候修改按钮上的文字。,






