版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
GUI事件处理项目六高等院校公共课系列精品教材Java开发综合实战把握客观事物之间的联系和发展规律,具体问题具体分析。遵循实事求是的原则,构建包含防范机制、处置机制和善后机制在内的教育应对机制。思政目标掌握Java的事件处理模式。能够对GUI中的常用事件进行处理。技能目标创建了图形用户界面后,由于组件本身并没有实现任何交互功能,因此要实现用户与应用程序的交互,还要处理组件上发生的事件。Java采用事件处理机制响应用户的操作请求,即程序的运行过程是不断地响应各种事件的过程,事件的产生顺序决定了程序的执行顺序,事件处理是图形用户界面应用程序的重要组成部分,是实现各种操作功能的重要途径。项目导读任务1认识事件处理机制任务2常用事件知识梳理认识事件处理机制任务1任务1认识事件处理机制任务引入小白创建了进销存管理系统的操作界面,但单击界面上的按钮没有反应。在Java中,该怎样响应用户在图形用户界面的操作呢?知识准备事件处理机制专门用于响应用户的操作,例如,响应用户的单击鼠标、按下键盘键、选择列表项等操作。一、事件处理模式在学习如何使用事件处理机制之前,首先必须很好地掌握事件对象、事件源、事件监听器、事件处理器这4个概念。1.事件对象封装GUI组件上发生的特定事件的类对象,通常是用户的一次操作,如单击按钮、按下按键等。2.事件源能够产生事件的对象都可以称为事件源,通常是产生事件的组件,如文本框、按钮、下拉式列表等。3.事件监听器负责监听事件源上发生的事件,以便对发生的事件进行处理。事件源通过调用相应的方法将某个对象注册为自己的监听器。任务1认识事件处理机制4.事件处理器负责接收事件对象并进行相应处理的方法,包含在一个事件监听器类中。上述4个概念彼此之间联系紧密,在整个事件处理机制中起着非常重要的作用。事件处理模式如图所示。任务1认识事件处理机制
事件处理模式
二、事件类Java将事件分为两个类别:低级事件与语义事件。绝大部分与图形用户界面有关的事件类都位于java.awt.event包中,其中包含了各种事件类别的监听接口。javax.swing.event包中定义了与Swing事件有关的事件类,例如DocumentEvent类。1.低级事件低级事件是指来自键盘、鼠标和与窗口操作有关的事件。例如,关闭窗口、移动鼠标、获取焦点或敲击键盘等。java.awt.event包中的低级事件类如表所示。任务1认识事件处理机制2.语义事件语义事件是指与组件有关的事件。例如,单击按钮、在文本域中输入文本、拖动滚动条、选择列表项等。java.awt.event包中常用的语义事件类如表所示。任务1认识事件处理机制常用事件任务2任务引入大致了解了事件处理的基本流程之后,勤于思考的小白又有了新的问题:Java提供了哪些事件,这些事件如何触发呢?如果只需要对某个事件监听类中的单个事件进行监听,而不关心其他的事件,能不能只重写该事件对应的方法呢?知识准备Java中的常用事件包括窗体事件、鼠标事件、键盘事件、动作事件、选项事件、焦点事件和文档事件。每个事件类都对应着一个监听器接口,比如窗体事件类WindowEvent对应着WindowListener接口。一个类只要实现了某个监听器接口就是一个监听器类了。监听器接口中定义了一些方法,监听器类可以具体实现其中部分或是所有的方法,事件被引发后就会执行这些方法。任务2常用事件一、窗体事件(WindowEvent)在应用程序中,触发窗体事件时,WindowEvent类创建一个窗体事件对象。该对象调用getWindow()方法可以获取发生窗体事件的窗口。在对窗体事件进行处理时,首先需要定义一个实现了WindowListener接口的类作为窗体监听器,然后通过addWindowListener()方法将窗体对象与窗体监听器绑定。WindowListener接口中有7个不同的方法,如表所示,不同的窗体事件触发时,窗体监听器调用不同的方法。任务2常用事件任务2常用事件案例——关闭窗口本案例创建一个窗口,首先定义一个实现了WindowListener接口的类作为窗体监听器,然后为“关闭”按钮注册监听器,实现单击“关闭”按钮关闭窗口的操作。通过本案例,帮助读者进一步了解事件处理模式和流程。任务2常用事件运行结果二、事件适配器在Java中,当一个类实现一个接口时,必须实现接口中所有的方法,即使不需要其中的某些方法也需要实现,这在实际应用中会导致很多代码多余但又无法省略,如上例所示。这种情况下,可以使用适配器的设计模式代替接口处理事件,在实现类和接口之间增加一个过渡的抽象类,子类继承抽象类就可以根据自己的需要重写需要的方法。Java在事件处理中提供了很多的Adapter(适配器)类,处理事件的接口多于一个方法时,Java相应地就提供一个适配器类,方便用户进行事件处理的实现任务2常用事件案例——使用WindowAdapter本案例修改上一个案例,使用适配器做监听器,只处理窗口关闭事件,因此只需重写windowClosing()方法即可。(1)打开MyWindowListener.java,引入java.awt.event.WindowAdapter包,然后修改代码,使MyWindowListener类继承WindowAdapter,然后删除其他重写的方法。(2)运行WindowEventTest.java,即可在指定位置弹出一个指定大小的窗口。单击窗口右上角的“关闭”按钮,即可关闭窗口。任务2常用事件三、鼠标事件(MouseEvent)在图形用户界面中,用户会经常使用鼠标在组件上进行各种操作,例如鼠标按下、释放、单击、拖动等,这些操作被定义为鼠标事件。几乎所有的组件都可以产生鼠标事件,JDK中使用MouseEvent类表示鼠标事件,该事件会导致MouseEvent类自动创建一个事件对象。处理鼠标事件时,首先需要实现MouseListener接口(或MouseMotionListener接口)或继承适配器MouseAdapter类(或MouseMotionAdapter类)定义监听器,然后调用addMouseListener()方法(或addMouseMotionListener()方法)将监听器绑定到事件源对象。任务2常用事件MouseListener接口中有5个不同的方法,如图示,用于处理5种不同的鼠标事件。任务2常用事件鼠标的操作分为左键单击、双击、右键点击和中键(滚轮)点击。MouseEvent类中定义了很多常量和方法来标识鼠标动作,如表所示。任务2常用事件MouseMotionListener接口中有2个不同的方法,如表所示,分别用于处理拖动鼠标和移动鼠标事件。任务2常用事件案例——拖动按钮本案例定义一个继承JFrame并实现MouseMotionListener接口的类作为窗体监听器,通过重写mouseDragged()方法,实现鼠标拖动按钮的操作。任务2常用事件运行窗口
拖动按钮四、键盘事件(KeyEvent)键盘操作也是很常用的用户交互方式,例如按下、释放或敲击键盘按键等,这些操作被定义为键盘事件。JDK使用KeyEvent类表示键盘事件,处理KeyEvent事件的监听器对象需要实现KeyListener接口或者继承KeyAdapter类。KeyListener接口中有3个方法,如表所示。任务2常用事件键盘上的按键众多,KeyEvent类提供了一些方法用于标识触发键盘事件的键,如表所示。任务2常用事件案例——字符转码本案例通过监听键盘事件,在文本区中输出在文本框中输入的字符的键码。任务2常用事件运行结果五、动作事件(ActionEvent)处理动作事件时,首先需要实现ActionListener接口定义监听器,然后调用addActionListener()方法将实现ActionListener接口的类的实例注册为事件源的监听器。ActionListener接口中只定义了一个方法publicvoidactionPerformed(ActionEvente),在发生操作时调用。ActionEvent类常用的方法如表所示。任务2常用事件案例——大小写转换本案例通过监听文本框和按钮的动作事件,将文本框中输入的字符全部转换为大写字母后,在文本区中输出。任务2常用事件(a)(b)
运行结果六、选项事件(ItemEvent)处理选项事件时,首先需要实现ItemListener接口定义监听器,然后调用addItemListener()方法将实现ItemListener接口的类的实例注册为事件源的监听器。ItemListener接口中只有一个方法publicvoiditemStateChanged(ItemEvente),在选择项发生改变时调用。ItemEvent类常用的方法如表所示。任务2常用事件案例——录入用户信息本案例通过监听下拉列表框的ItemEvent事件和按钮的ActionEvent事件,将用户界面输入、选择的信息在文本区中输出。任务2常用事件运行结果七、焦点事件(FocusEvent)处理焦点事件时,首先需要实现FocusListener接口定义监听器,然后调用addFocusListener()方法将实现FocusListener接口的类的实例注册为事件源的监听器。FocusListener接口中有2个方法,用于处理焦点改变的事件,如表所示。任务2常用事件案例——输入序列号本案例通过监听文本框的焦点事件,模拟某些软件输入序列号。序列号要在3个文本框中依次输入,每个文本框中只能输入4个字符,多出4个字符时光标自动定位到下一个文本框中。任务2常用事件八、文档事件(DocumentEvent)DocumentEvent接口用于处理文档事件。能够产生文档事件的事件源有文本框(JTextField)、密码框(JPasswordField)、文本区(JTextArea),但这些组件不能直接触发DocumentEvent事件。处理文档事件时,首先需要实现DocumentListener接口定义监听器,然后调用addDocumentListener()方法将实现DocumentListener接口的类的实例注册为事件源的监听器。任务2常用事件DocumentListener接口包含在javax.swing.event包中,定义了3个方法,用于处理文档内容改变的事件,如表所示。任务2常用事件案例——实时排序本案例通过监听文本区所维护的文档模型中的数据的焦点事件,对输入的字符串进行实时排序。任务2常用事件
运行结果1
运行结果2项目总结在上一章的项目实战中已实现了进销存管理系统的图形用户界面,本节将为主操作界面、商品入库界面、商品出库界面以及商品查询界面的组件注册监听器、编写事件处理程序,监听并处理组件的各种事件。修改商品信息界面的组件操作读者可参照本节的实现代码自行完成。(1)复制并粘贴“进销存管理系统V5.0”,在CopyProject对话框中修改项目名称为“进销存管理系统V6.0”,然后单击Copy按钮关闭对话框。(2)打开MainFrame.java,为各个功能按钮注册监听器,处理单击该按钮进入相应界面的操作。(3)在PackageExplorer窗格中右击项目名称,从弹出的快捷菜单中选择New→Package命令,新建一个名为controller的包。然后在该包中添加一个名为Controllers的类,用于管理商品入库、出库、修改和查询的操作代码。项目实战(4)打开InFrame.java,在构造方法中注释代码行setVisible(true);,默认隐藏该窗体。然后分别为“提交”按钮和“返回”按钮注册监听器,处理单击该按钮进行的操作。(5)打开OutFrame.java,在构造方法中注释代码行setVisible(true);,默认隐藏该窗体。然后分别为“提交”按钮和“返回”按钮注册监听器,处理单击该按钮进行的操作。(6)打开SearchFrame.java,在构造方法中注释代码行setVisible(true);,默认隐藏该窗体。然后分别为“提交”按钮和“返回”按钮注册监听器,处理单击该按钮进行的操作。项目实战(7)运行程序,在弹出的主界面中单击“商品入库”按钮进入对应的操作界面。输入商品信息,然后单击“提交”按钮,即可弹出一个提示对话框,并将指定的商品信息入库,如图所示。(8)单击提示对话框的“确定”按钮关闭对话框,然后单击“返回”按钮返回主界面。再次单击“商品入库”按钮进入对应的操作界面,输入要入库的商品信息,如图所示,单击“提交”按钮即可弹出一个提示对话框,并将指定的商品入库。项目实战商品入库1
商品
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肾结石术后并发症预防护理查房
- 跖骨骨折患者睡眠质量改善
- 2026 宝妈塑型维持期饮食课件
- 2026 增肌期瘦体重管理课件
- 起搏器术后运动指导与安全注意事项
- 对外经营合同范本分享合同三篇
- 阴疮饮食调理建议
- 2026 塑型进阶鹅肝课件
- 2026 塑型维持期鸡爪课件
- 肿瘤患者的药物治疗护理
- 《单片机应用技术》课件-4.2.1 中断概念、中断源与中断寄存器
- 2026年食品安全标准与检测技术测试题库
- 2026年北京市顺义区高三二模英语试卷(含答案)
- 2026年重庆市检察院刑事检察业务竞赛真题及答案解析
- 企业采购管理合规性审查检查清单
- 2023年测量数据处理及计量专业实务一级注册计量师真题试卷
- 2026学习教育个人查摆问题清单表格(4大方面16个问题含存在问题、具体表现)
- (2026版)《中华人民共和国生态环境法典》培训
- 临平事业单位招聘笔试真题
- 2025年上海市各区高三语文二模古诗文默写汇编(含答案)
- 2026年汕头中考数学模考计算满分真题及答案(含逐题解析)
评论
0/150
提交评论