单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第19讲事件处理一,19.1 Java的事件处理机制,19.2 动作事件,19.3 调整事件和改变事件,19.4 选择事件,19.5 文本领件,讲后练习,19.1 Java的事件处理机制,要理解Java中的事件处理机制,必须先了解几个概念:,1事件:事件类创立的对象,使用鼠标、键盘等操作GUI组件时,由GUI组件产生。事件类的命名为XxxEvent。,2事件源:能够产生事件的GUI组件,如按钮、文本组件、窗体等。,3监听器接口:某种特定的接口,对于每种类型的事件都对应一个监听器接口,命名方式为XxxLitener。,4监听器对象:由实现了某种监听器接口的类所创立的对象,能够监听GUI组件。如果被某监听者对象所监听的组件产生了事件,那么此监听者就捕获并处理这个事件。,5注册监听器对象:监听器对象要监听某个GUI组件,必须在两者之间建立联系,即为组件注册监听器对象。注册方法为:组件名.addXxxListener(监听器对象)。,19.2 动作事件,在进行下面的操作时,相应组件会产生动作事件ActionEvent:,1单击按钮;,2选择菜单项;,3文本框中按回车键;,4双击列表中选项。,与ActionEvent相对应的监听器接口为ActionListener,为组件注册监听器对象的方法为addActionListener(Listener)。不是所有对象都有资格作为监听器对象,只有实现了ActionListener接口的类创立的对象才能监听组件上的动作事件。ActionListener接口中定义了actionPerformed(ActionEvent e)方法,用于接收ActionEvent事件。,实现监听器接口的方法有三种:,1外部类实现监听器接口,一个类实现某个接口必须实现这个接口中的所有抽象方法,外部类实现ActionListener接口时,必须实现此接口中的actionPerformed(ActionEvent e)方法。,2内部类实现监听器接口,也可以定义一个内部类来实现ActionListener接口,使用内部类创立的对象来监视组件。,3匿名内部类实现监听器接口,事件监听最常用的方法是使用匿名内部类的对象作为监听器对象来监听组件,这时匿名内部类必须实现监听器接口。,19.3 调整事件和改变事件,用鼠标拖动滚动条上的滑块,或点击滚动条两端的按钮时,滚动条会产生,AdjustmentEvent,事件。与,AdjustmentEvent,事件所对应的监听器接口为,AdjustmentListener,,此接口中的,adjustmentValueChanged,(,AdjustmentEvent,e),方法可以接收,AdjustmentEvent,事件。为组件注册,AdjustmentEvent,事件监听器的方法为,addAdjustmentListener(Listener),。,进度条或滑块会产生,ChangeEvent,事件,而与,ChangeEvent,事件所对应的监听器接口为,ChangeListener,,接口中的,stateChanged(ChangeEvent e),方法可以接收,ChangeEvent,事件。为组件注册,ChangeEvent,事件的方法为,addChangeListener(Listener),。,使用,getActionCommand(),方法可以获得产生动作事件的组件上标签的名字,而使用事件对象调用,getSource(),方法可以获得事件源对象,只不过得到的这个对象是,Object,类型的对象,使用时必须进行向下转型。,19.4 选择事件,中选择各种按钮、选项框、带复选框菜单项,单击组合框中选项等操作时会产生ItemEvent事件当然也会产生ActionEvent事件,与ItemEvent事件所对应的监听器接口为ItemListener,接口中的itemStateChanged(ItemEvent e)方法可以接收ItemEvent事件。为组件注册ItemEvent事件监听器对象的方法为addItemListener(Listener)。,ItemEvent类中的常用方法有:,1Object getItem():返回受事件影响的项。,2ItemSelectable getItemSelectable():返回事件的产生程序。,3int getStateChange():返回状态更改的类型已选定或已取消选定。,4String paramString():返回标识此项事件的参数字符串。,点击列表框中的选项时会产生,ListSelectionEvent,事件,与此事件相对应的监听器接口为,ListSelectionListener,,接口中的,valueChanged(ListSelectionEvent e),方法可以接收,ListSelectionEvent,事件。为,JList,对象注册,ListSelectionEvent,事件监听器对象的方法为,addListSelectionListener(Listener),。,19.5 文本领件,修改,awt,组件库中文本区或文本框中的内容时会产生,TextEvent,事件,与之对应的监听器接口为,TextListener,,该接口中的,textValueChanged(TextEvent e),方法可以接收,TextEvent,事件。为组件注册监听器对象的方法为,addTextListener(Listener),。,Swing,组件库中的文本区和文本框并没有设置,TextListener,,而是将对文本的监视任务放入了另外一个接口,Document,中。因此首先要为,JTextField,对象申请一个,Document,接口对象,使用的方法是,field.getDocument()本文给出的JTextField对象名为field。获得Document后,就可以使用addDocumentListener(Listener)来得到一个和TextListener功能类似的监听接口。,中定义,其中包含了三个方法:,1public void changedUpdate(DocumentEvent e):监听文本属性的变化;,2public void insertUpdate(DocumentEvent e):监听文本内容插入事件;,3public void removeUpdate(DocumentEvent e):监听文本内容的删除事件。,讲后练习,1,、简述,Java,中的事件处理机制。,2,、编写程序,实现,windows,附件中的计算器。,