版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA的键盘和鼠标事件鼠标事件鼠标事件键盘时间键盘时间窗口事件窗口事件Swing组件组件JAVA中常见的事件及继承关系:各类事件的处理接口及其方法各类事件的处理接口及其方法参见参见 P156表表8.1注意:注意: 某组件能够实现哪些接口(参见第某组件能够实现哪些接口(参见第6章章内容)内容)重点:鼠标事件、键盘事件和窗口事件重点:鼠标事件、键盘事件和窗口事件鼠标事件鼠标事件1、MouseListener接口接口 用于监听发生用于监听发生在一个在一个GUI构件上构件上的鼠标事的鼠标事件包括件包括鼠标的按下、释放、单击、进入和退鼠标的按下、释放、单击、进入和退出出。 在一个实现了在一个实现了Mo
2、useListener接口或继承接口或继承了了MouseAdapter类的类中可以定义事件的处类的类中可以定义事件的处理方法,而该类的一个对象则应该用理方法,而该类的一个对象则应该用addMouseListener()方法注册到发生鼠标事件方法注册到发生鼠标事件的构件上。的构件上。 MouseListener接口包含的方法如下:接口包含的方法如下:public void mouseClicked(MouseEvent e) 当在一个构件上当在一个构件上单击单击鼠标时被调用。鼠标时被调用。public void mousePressed(MouseEvent e) 当在一个构件上当在一个构件上按
3、下鼠标按钮按下鼠标按钮时被调用。时被调用。public void mouseReleased(MouseEvent e) 当在一个构件上当在一个构件上释放鼠标按钮释放鼠标按钮时被调用。时被调用。public void mouseEntered(MouseEvent e) 当鼠标指针当鼠标指针进入构件进入构件时被调用。时被调用。public void mouseExited(MouseEvent e) 当鼠标指针当鼠标指针退出构件退出构件时被调用。时被调用。2、MouseMotionListener接口接口 鼠标移动监听接口(鼠标移动监听接口(MouseMotionListener)用)用于监听
4、发生于监听发生在一个在一个GU构件上的鼠标移动事件构件上的鼠标移动事件,包括鼠,包括鼠标的标的移动和拖动移动和拖动,其使用方法与,其使用方法与MouseListener接口接口相同。它所包含的方法如下:相同。它所包含的方法如下:public void mouseDragged(MouseEvent e) 当在一当在一个构件上个构件上按下鼠标按钮并且拖动按下鼠标按钮并且拖动时被调用。鼠标拖动时被调用。鼠标拖动事件直到鼠标被释放为止,而不管鼠标的位置是否越事件直到鼠标被释放为止,而不管鼠标的位置是否越出了原来构件的边界。出了原来构件的边界。pubic void mouseMoved(MouseEv
5、ent e) 当当鼠标指鼠标指针移动针移动时该方法被调用。注意此时鼠标的按钮并没有时该方法被调用。注意此时鼠标的按钮并没有被按下。被按下。 在在MouseListener接口和接口和MouseMotionListener接接口中的口中的所有方法中都有一个参数所有方法中都有一个参数,它是鼠标事件类,它是鼠标事件类MouseEvent的一个对象的一个对象,当鼠标事件发生时系统自,当鼠标事件发生时系统自动生成一个该类的对象,在鼠标事件的处理方法中,经动生成一个该类的对象,在鼠标事件的处理方法中,经常需在调用该类的方法来获得关于事件的一些信息。常需在调用该类的方法来获得关于事件的一些信息。 Mouse
6、Event类的常用方法如下:类的常用方法如下:public int getX() 返回当前鼠标指针位置的返回当前鼠标指针位置的x坐标值。坐标值。public int getY() 返回当前鼠标指针位置的返回当前鼠标指针位置的y坐标值。坐标值。public int getClickCount() 返回事件中鼠标的点击次返回事件中鼠标的点击次数。数。public String paramString() 返回一个标识该事件的字返回一个标识该事件的字符串。符串。 3、设计一个程序,使得当鼠标在画布上移动、设计一个程序,使得当鼠标在画布上移动时可以画出一段曲线。例时可以画出一段曲线。例8.1 演示:演
7、示: MyMouseDraw1.java缺点:缺点: 屏幕会闪动。因为每一次都将所有的点屏幕会闪动。因为每一次都将所有的点和线重画,点越多,重画的时间将越长,闪和线重画,点越多,重画的时间将越长,闪动越厉害。动越厉害。改进:改进: 方法一:每次只画最近新加的点(线)。只方法一:每次只画最近新加的点(线)。只有当窗口需要刷新时才重画所有的点(线)。有当窗口需要刷新时才重画所有的点(线)。 演示:演示: MyMouseDraw1P.java 方法二:通过写屏缓存技术方法二:通过写屏缓存技术 键盘事件键盘事件 1、KeyListener 接口和接口和KeyAdapter 类类 用于监听键盘事件的发生
8、并将其传送到相应用于监听键盘事件的发生并将其传送到相应的事件处理方法中去。的事件处理方法中去。 KeyListener接口能够接口能够监听的键盘事件监听的键盘事件有:有:键按下键按下(Pressed)、键释放、键释放(Released)及键的及键的按下并释放按下并释放(Typed),相应的事件处理方法如,相应的事件处理方法如下:下:pubic void keyTyped(KeyEvent e) 当键盘上当键盘上的的一个键被按一个键被按下并释放后该方法被调用。下并释放后该方法被调用。 public void keyPressed(KeyEvent e) 当键盘当键盘上的上的一个键盘被按下一个键盘
9、被按下后该方法被调用。后该方法被调用。public void keyReleased(KeyEvent e) 当键当键盘上的盘上的一个键盘被释放一个键盘被释放时该方法被调用。时该方法被调用。 在在KeyListener接口中的方法都有一个参数,接口中的方法都有一个参数,及及KeyEvent类的对象。类的对象。KeyEvent类中常用类中常用的方法如下:的方法如下: public int getKeyCode() 返回键盘事件中返回键盘事件中相关键的相关键的整数类型键码整数类型键码。 public char getKeyChar() 返回键盘事件中返回键盘事件中相关键的相关键的字符类型键码字符类
10、型键码。例如,对于。例如,对于Shifta键返回的字符是键返回的字符是A。 public static String getKeyText(int keyCode) 返回一个描述返回一个描述由参数由参数int keyCode确定的键的字符串确定的键的字符串,如,如Home、F1、A等。等。 public String paramString() 返回一个标识返回一个标识该事件的参数字符串。该事件的参数字符串。 2、处理键盘输入的例子。例、处理键盘输入的例子。例8.2 演示:演示: MyKeyDemo1.java可打印字符可使用可打印字符可使用getKeyChar() 返回;返回;控制字符使用控
11、制字符使用getKeyCode() 返回;返回;窗口事件窗口事件1、WindowListener接口和WindowAdapter 类 对窗口的事件进行监视,如:窗口正在关闭、窗口关闭、窗口被打开、窗口图标化、窗口非图标化、窗口应获得焦点而成为当前窗口、窗口失去焦点而非激活等 windowClosing(WindowEvent) windowClosed(WindowEvent) windowOpened(WindowEvent) windowIconified(WindowEvent) windowDeiconified(WindowEvent) windowActivated(WindowE
12、vent) windowDeactivated(WindowEvent)窗口有关事件发生时的信息被包含在一窗口有关事件发生时的信息被包含在一个称为个称为WindowEvent类型的对象中类型的对象中 。WindowEvent类的方法:类的方法: public Window getWindow(); 获取事件发生的窗口句柄获取事件发生的窗口句柄演示:演示: WindowDemo1.java Swing基础基础Swing的产生主要原因就是的产生主要原因就是AWT不能满不能满足图形化用户界面发展的需要。足图形化用户界面发展的需要。 从从JDK1.2开始开始,AWT添加了被称为添加了被称为Swing的
13、新的新GUI库,库,Swing是基于是基于AWT基本结构所创建的二级用户界面工具集。基本结构所创建的二级用户界面工具集。Swing是作为是作为JFC(Java Foundation Class)的一部分提供的,它提供了一整的一部分提供的,它提供了一整套的套的GUI组件,为保证可移植性,组件,为保证可移植性,Swing完全用完全用Java语言编写语言编写。 Swing是由是由100%纯纯Java实现的,实现的,Swing组件组件是用是用Java实现的轻量级(实现的轻量级( light-weight)组件,)组件,没有本地代码,不依赖操作系统的支持没有本地代码,不依赖操作系统的支持,这,这是它与是
14、它与AWT组件的最大区别。组件的最大区别。 Swing在不同的平台上表现一致,并且有能力在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。提供本地窗口系统不支持的其它特性。 在在AWT组件中,由于控制组件外观的对等类组件中,由于控制组件外观的对等类与具体平台相关,使得与具体平台相关,使得AWT组件总是只有与组件总是只有与本机相关的外观。本机相关的外观。Swing使得程序在一个平台使得程序在一个平台上运行时能够有不同的外观上运行时能够有不同的外观。用户可以选择。用户可以选择自己习惯的外观。自己习惯的外观。 (见下例)(见下例)Swing围绕着一个称为围绕着一个称为JCompon
15、ent的组件的组件构建的,而构建的,而JComponent则由则由AWT的的容器类容器类扩展而来。扩展而来。 java.lang.Object|+-java.awt.Component| +-java.awt.Container|+-javax.swing.JComponentSwing中的大多数组件都是中的大多数组件都是AWT组件名前面加了一组件名前面加了一个个J。Swing包:包: javax.swing.*;组件从功能上分可分为:组件从功能上分可分为:1) 顶层容器:顶层容器: JFrame,JApplet,JDialog,Jwindow2) 中间容器:中间容器: JPanel,JScr
16、ollPane,JSplitPane, JToolBar3) 特殊容器:在特殊容器:在GUI上起特殊作用的中间层,如上起特殊作用的中间层,如 JInternalFrame,JLayeredPane,JRootPane.4) 基本控件:实现人际交互的组件,如基本控件:实现人际交互的组件,如 Jbutton, JComboBox, JList, JMenu, JSlider, JtextField。5) 不可编辑信息的显示:向用户显示不不可编辑信息的显示:向用户显示不可编辑信息的组件,例如可编辑信息的组件,例如 JLabel, JProgressBar, ToolTip。6) 可编辑信息的显示:向
17、用户显示能被可编辑信息的显示:向用户显示能被编辑的格式化信息的组件,如编辑的格式化信息的组件,如 JColorChooser, JFileChoose, JFileChooser, Jtable, JtextArea。JComponent类的特殊功能又分为:类的特殊功能又分为:1) 边框设置边框设置:使用:使用setBorder()方法可以设方法可以设置组件外围的边框,使用一个置组件外围的边框,使用一个EmptyBorder对对象能在组件周围留出空白。象能在组件周围留出空白。2) 双缓冲区双缓冲区:使用双缓冲技术能改进频繁:使用双缓冲技术能改进频繁变化的组件的显示效果。与变化的组件的显示效果。
18、与AWT组件不同,组件不同,JComponent组件默认双缓冲区,不必自己重组件默认双缓冲区,不必自己重写代码。如果想关闭双缓冲区,可以在组件上写代码。如果想关闭双缓冲区,可以在组件上施加施加setDoubleBuffered(false)方法。方法。3) 提示信息提示信息:使用:使用setTooltipText()方法,方法,为组件设置对用户有帮助的提示信息。为组件设置对用户有帮助的提示信息。 4) 键盘导航键盘导航:使用:使用registerKeyboardAction( ) 方法,能使用户用键盘代替鼠标来驱动组件。方法,能使用户用键盘代替鼠标来驱动组件。JComponent类的子类类的子
19、类AbstractButton还提供了便还提供了便利的方法用利的方法用setMnemonic( )方法指明一个字符,方法指明一个字符,通过这个字符和一个当前通过这个字符和一个当前L&F的特殊修饰共同激活按的特殊修饰共同激活按钮动作。钮动作。5) 可插入可插入L&F:每个:每个Jcomponent对象有一个相对象有一个相应的应的ComponentUI对象,为它完成所有的绘画、事对象,为它完成所有的绘画、事件处理、决定尺寸大小等工作。件处理、决定尺寸大小等工作。 ComponentUI对象对象依赖当前使用的依赖当前使用的L&F,用用UIManager.setLookAndFeel( )方法可以设置需要的方法可以设置需要的L&F.6) 支持布局支持布局:通过设置组件最大、最小、推荐:通过设置组件最大、最小、推荐尺寸的方法和设置尺寸的方法和设置X、Y对齐参数值的方法能指定布对齐参数值的方法能指定布局管理器的约束条件,为布局提供支持。局管理器的约束条件,为布局提供支持。 使用使用Swing的基本规则的基本规则 与与AWT组件不同,组件不同,Swing组件组件不能不能直接添加到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年海南省五指山市高二历史上册期末考试检测卷及一套参考答案
- 2026生物技术革新驱动下的疫苗研发趋势与商业化前景研究报告
- 2026中国痛风药物研发进展及临床应用前景研究报告
- 2026中国数据安全立法对企业合规要求影响报告
- 2026户外运动水袋饮用水净化技术升级路线
- 2026车用润滑油市场需求变化与竞争策略
- 2026现代物流体系重构与供应链优化战略研究
- 2026第三方医学检验行业集中度提升路径与资本介入时机研究
- 2026中国液体化工物流行业替代品威胁与市场机会研究报告
- 2026运动防护袜类产品细分市场与渠道布局
- 【2026】年部编版道德与法治新教材二年级上册全册教案(共4个单元含教学计划)
- 2026大米包装设计创新与品牌价值提升研究报告
- 2026年中国华电集团招聘机械设计制造及其自动化题
- 中华民族共同体课件
- 高中英语3500词(带音标2026新高考版)
- 物业公司小区消防应急预案
- 电力系统分析试卷及答案
- 2025药品信息化追溯体系建设及数据共享与合规性研究
- 2025年大唐集团招聘笔试试题及答案
- 临沂工资管理办法
- 甲醇加注站管理制度
评论
0/150
提交评论