好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《Java程序设计技能教程》-彭德林-电子教案 JAVA程序设计技能教程第10章.ppt

31页
  • 卖家[上传人]:E****
  • 文档编号:89430155
  • 上传时间:2019-05-25
  • 文档格式:PPT
  • 文档大小:234.50KB
  • / 31 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Java程序设计技能教程,主编 彭德林 李德有 中国水利水电出版社 ,第10章 键盘与鼠标事件响应,任务一:掌握事件处理机制,任务三:掌握对鼠标事件的响应方法,任务二:掌握对键盘事件响应方法,任务四:实训十 事件响应实训,10.1 任务一 掌握事件处理机制,10.1.1 相关概念 1.事件:是一个对象,它描述发生了什么事情事件对象由在Java中预先定义好的类产生,Java定义了所有事件的事件类,如键盘操作对应的事件类是KeyEvent java.awt.AWTEvent类是所有事件类的父类 2.事件源:能够产生事件的对象都可以称之为事件源,如键盘、鼠标、按钮等 3.事件处理方法:能够接收、解析处理事件类对象,实现和用户交互的方法它以事件对象为参数 4.监视器:对事件源进行监视,使发生事件时做出处理的一种特殊的对象事件源通过调用相应的方法将某个对象作为自己的监视器10.1.2 事件处理机制,Java采用“授权事件模型”(Event Delegation Model)的事件处理模式其原理为:事先定义多种事件类型(即用户在GUI组件上进行的操作,如单击事件),当用户对某个GUI组件进行操作时,可能触发相应的事件,这个组件就是事件源。

      如果此组件注册了事件监听器(可以通过addXXXXListener方法注册),事件被传送给已注册的监听器,事件监听器负责处理事件的过程一个组件可以注册一个或多个监听器监视器负责处理事件源发生的事件监视器是个对象,为了处理事件源发生的事件,监视器会自动调用一个方法来处理事件为了让监视器能对事件源发生的事件进行处理,创建该监视器的类必须声明实现相应的接口,即必须在类体中给出该接口中所有方法的方法体,这样在事件源发生事件时,监视器就自动调用执行被类实现的某个接口方法,①若要保证一个组件产生的某种类型事件XXXEvent有效,需要注册一个“事件监听器”监听它用如下语句设置事件监听器: 事件源.addXXXListener(XXXListener代表某种事件监听器) ②组件作为事件源,不同类型的组件会产生特定类型的事件 ③一旦产生事件后,事件会被传送给已注册的一个或多个监听器事件监听器是实现了与该事件相对应的XXXListener接口的类 ④事件监听器监听到事件后,会根据事件的类型调用相应的事件处理方法1.java.awt.event包 (1)文本框回车、按钮单击、计时器、菜单项 引发动作事件:java.awt.event.ActionEvent 处理事件的接口:java.awt.event.ActionListener 接口中的方法:public void actionPerformed(ActionEvent event) (2)单选按钮、多选按钮、下拉列表 引发选项事件:java.awt.event.ItemEvent 处理事件的接口:java.awt.event.ItemListener 接口中的方法:public void itemStateChanged(ItemEvent event),,,,(3)键盘 引发动作事件:java.awt.event.KeyEvent 处理事件的接口:java.awt.event.KeyListener (4)鼠标 引发鼠标事件:java.awt.event.MouseEvent 处理事件的接口:java.awt.event.MouseListener 与java.awt.event.MouseMotionListener接口。

      2.java.swing.event包 (1)列表(JList) 引发列表选择事件:java.swing.event.ListSelectionEvent 处理事件接口:java.swing.event.ListSelectionListener 接口中的方法: public void valueChanged(ListSelectionEvent event) (2)树(JTree) 引发树选择事件:java.swing.event.TreeSelectionEvent 处理事件接口:java.swing.event.TreeSelectionListener 接口中的方法: public void valueChanged(TreeSelectionEvent event),,(3)滑动杆(JSlider) 引发改变事件:java.swing.event.ChangeEvent 处理事件接口:java.swing.event.ChangeListener 接口中的方法: public void stateChanged(ChangeEvent event),10.2 任务二 掌握对键盘事件响应方法 10.2.1 键盘事件 当键盘按下、释放、点击时都会触发键盘事件(java.awt.event.KeyEvent),常用的KeyEvent方法是public int getKeyCode(),它用于获取所按下键的编码值。

      键盘事件类提供了很多静态常量表示键的编码值,如: VK_A 键A的编码值 VK_DOWN 下箭头键的编码值 VK_UP 上箭头键的编码值 VK_1 键1的编码值 VK_ENTER 表示回车编码值 VK_SPACE 表示空格键编码值,更多的键码值可以查阅Java API文档来获得 编写键盘事件响应程序时,使用语句if(e.getKeyCode()==KeyEvent.VK_B)可以判断是否按下了字母键B,然后做相应处理,语句中的e是事件处理时接收的键盘事件对象参数名10.2.2 键盘监听接口KeyListener 对键盘事件可以通过java.awt.event.KeyListener接口中提供的方法来处理 这个接口有三个方法: 1.keyPressed(KeyEvent e)响应按下键盘事件; 2.keyTyped(KeyEvent e)响应按下又松开键盘事件; 3.keyReleased(KeyEvent e)响应松开键盘事件; 它们都是public void方法,事件源要使用addKeyListener方法添加监视器来获得事件例10-1】对键盘事件进行响应 import java.awt.event.*; import javax.swing.*; import java.awt.*; public class hh extends JFrame implements KeyListener{ JButton JButton1; hh(){ JPanel jpanel1=new JPanel(); JButton1=new JButton(“请按M键!“); JButton1.addKeyListener(this); this.setSize(200,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jpanel1.add(JButton1); this.add(jpanel1); this.setVisible(true); },public void keyPressed(KeyEvent e){ if(e.getKeyCode()==KeyEvent.VK_M) { JButton1.setBounds(60,60,90,90); JButton1.setBackground(Color.red); } } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} public static void main(String args[]){ new hh(); } },10.2.3 键盘适配器类KeyAdapter 使用KeyListener接口时,即使有些方法不使用也必须在程序中写出接口的所有方法,因此比较麻烦,而java.awt.event.keyAdapter类本身就使用了KeyListener接口,并对接口的三个方法增加了空方法体,因此使用keyAdapter类时不必像使用接口那样实现所有方法,只需覆盖要响应的键盘事件方法即可。

      下面的程序是通过使用键盘适配器类来实现响应键盘事件,当分别按“R”、“G”、“B”时将圆的颜色设置为红色、绿色和蓝色例10-2】 import java.awt.event.*; import javax.swing.*; import java.awt.*; public class hh extends JFrame{ Color c; hh(){ this.setSize(200,300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); addKeyListener(new MyType()); } class MyType extends KeyAdapter { public void keyTyped(KeyEvent e) { if(e.getKeyChar()=='r'||e.getKeyChar()=='R') c=Color.red; else if(e.getKeyChar()=='g'||e.getKeyChar()=='G') c=Color.green;,else if(e.getKeyChar()=='b'||e.getKeyChar()=='B') c=Color.blue; else c=Color.black; repaint(); } } public void paint(Graphics g) { g.setColor(c); g.fillOval(60,60,100,100); } public static void main(String args[]){ new hh(); } },10.3 任务三 掌握对鼠标事件的响应方法,10.3.1 鼠标事件 鼠标事件源各种动作可以触发鼠标事件,如按下鼠标、点击鼠标、释放鼠标、鼠标进入和鼠标退出。

      鼠标事件类型是java.awt.event.MouseEvent,当发生鼠标事件时MouseEvent类自动创建一个鼠标事件对象 1.MouseEvent类有几个常用的方法: (1)getX()用于获取鼠标x坐标 (2)getY()用于获取鼠标y坐标;,(3)getButton()用于获取鼠标的左中右键值;根据键值来知道按的是哪一个键,MouseEvent.BUTTON1、MouseEvent.BUTTON2和MouseEvent.BUTTON3分别是左中右三个键值例如在程序中通过if(e.getButton()==MouseEvent.BUTTON1)可以判断按的是否是左键 (4)getClickCount()获取点击次数; 2.添加鼠标监视器的方法:public void addMouseListener() 3.移去鼠标监视器的方法:public void removeMouseListener().,10.3.2 使用MouseListener接口处理鼠标事件 通过使用java.awt.event.MouseListener接口可以对鼠标事件进行处理,它有以五个方法: (1)mousePressed(MouseEvent)方法,按下鼠标时,接口监视器发现这个事件后自动调用这个方法。

      (2)mouseReleased(MouseEvent)方法,松开鼠标时,接口监视器发现这个事件后自动调用这个方法 (3)mouseEntered(MouseEvent)方法,鼠标指针进入容器时,接口监视器发现这个事件后自动调用这个方法4)mouseExited(MouseEvent)。

      点击阅读更多内容
      猜您喜欢
      《Java程序设计及应用》-电子教案-李宗军 06 2.ppt 《Java程序设计及应用》-电子教案-李宗军 05.ppt 初中材料作文写作指导.ppt 幼儿园小班班务计划第一学期范例.docx 蔡志理-卢子真-多媒体制作技术教程 第12章 交互功能的实现.ppt 《SQL Server2000数据库及应用》-李伟红-电子教案 第2章 数据库的创建和管理.ppt 《SQL Server2000数据库及应用》-李伟红-电子教案 第6章 视图的创建与维护.ppt 高等数学 经管类 下 高等职业教育“十一五”规划教材 教学课件 PPT 作者 通识教育规划教材编写组文科高数PPT 第4章.ppt 计算机常用工具软件教程-电子教案-陈建国 工具软件 第7章.ppt 幼儿园小班班级工作计划开头20xx.docx 高等数学 经管类 下 高等职业教育“十一五”规划教材 教学课件 PPT 作者 通识教育规划教材编写组文科高数PPT 第6章.ppt 计算机网络安全 教学课件 ppt 作者 邓亚平 第2章 数 据 加 密.ppt 软件测试 教学课件 ppt 作者 郑人杰 许静 于波 第4章白盒测试二.ppt 高等数学 经管类 下 高等职业教育“十一五”规划教材 教学课件 PPT 作者 通识教育规划教材编写组文科高数PPT 第7章.ppt 幼儿园小班班级工作计划模板20xx.docx 幼儿园小班班级工作计划样本模板20xx.docx 幼儿园小班班级工作计划模板.docx 《Java程序设计技能教程》-彭德林-电子教案 JAVA程序设计技能教程第4章.ppt 放线菌和霉菌的形态结构观察.ppt 磁生电课件.ppt
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.