java教程5事件驱动及常用组件

上传人:tian****1990 文档编号:74534927 上传时间:2019-01-28 格式:PPT 页数:129 大小:1.37MB
返回 下载 相关 举报
java教程5事件驱动及常用组件_第1页
第1页 / 共129页
java教程5事件驱动及常用组件_第2页
第2页 / 共129页
java教程5事件驱动及常用组件_第3页
第3页 / 共129页
java教程5事件驱动及常用组件_第4页
第4页 / 共129页
java教程5事件驱动及常用组件_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《java教程5事件驱动及常用组件》由会员分享,可在线阅读,更多相关《java教程5事件驱动及常用组件(129页珍藏版)》请在金锄头文库上搜索。

1、第五章 事件处理机制 及常用组件,Event-driven programming,例:ButtonTest.java,Java 事件处理机制 窗口事件 鼠标事件 键盘事件 常用组件,事件源,监听器,消息,事件 驱动程序,Java AWT事件模型工作机制,5.1 Java 事件处理机制,一.事件源 能够产生事件的对象都可以成为事件源.,一个事件源是一个能够注册监听器并且为监听器发送消息的一些对象,5.1 Java 事件处理机制,如:文本框、按钮、鼠标、键盘等,1.监听器类:一个使用了专门事件监听器接口的类,该类必须实现接口中的方法.,这些方法就是驱动方法,当事件发生时,被自动指行。,监听器对象

2、会接收事件源对象发送的消息,并对发生的事件作出反应.,5.1 Java 事件处理机制,二.监听器,2.监听器:由监听器类创建的对象.,5.2 注册监听器方法,一、监听器类的定义,监听器类必须使用与事件源相对应的接口(例:ActionListener),从而必须 提供接口中的方法: actionPerformed(ActionEvent event) 的实现,此方法即是与事件相关联的事件驱动方法,class Mylistener implements ActionListener . /使用了与事件相对应的接口 public void actionPerformed( ActionEvent e

3、vent) /实现了接口里的方法 ,Mylistener类的对象就可以用来作监听器,5.2 注册监听器方法,二.注册监听器,例: MyListener listener=new MyListener(); JButton button=new JButton(“ok”); button.addActionListener(Listener);,eventSourceObject.addEventListener( eventListenerObject),5.2 注册监听器方法,/监听器类 private class ColorAction implements ActionListener

4、. /事件驱动方法 public void actionPerformed(ActionEvent event) setBackground(backgroundColor); repaint(); private Color backgroundColor; ,5.2 注册监听器方法,例子ButtonTest.java中的监听器实现,/创建监听器对象 ColorAction yellowAction = new ColorAction(Color.yellow); ColorAction blueAction = new ColorAction(Color.blue); ColorActio

5、n redAction = new ColorAction(Color.red); /注册监听器 yellowButton.addActionListener(yellowAction); blueButton.addActionListener(blueAction); redButton.addActionListener(redAction); ,5.2 注册监听器方法,四.用匿名类简化程序 在例ButtonTest.java中,每个按钮需要同样的处理: 1.使用字符串构造按钮 2.把按钮添加到面板 3.用适当的颜色构造一个监听器 4.注册动作监听器,5.2 注册监听器方法,void m

6、akeButton(String name , color bcolor) JButton button=new JButton(name); add(button); Coloraction act=new /监听器对象 Coloraction(bcolor); button.addActionListener(act); ,5.2 注册监听器方法,设计一个方法用来构造按钮:,ButtonPanel构造器变为: makeButton(“yellow”,Color.yellow); makeButton(“blue”,Color.blue); makeButton(“red”,Color.re

7、d);,进一步简化,把ColorAction改写成匿名类 void makeButton(String name ,color bcolor) JButton button=new JButton(name); add(button);,5.2 注册监听器方法,button.addActionListener( new ActionListener() public void actionPerformed( actionEvent event) setBackground(bcolor); repaint() ); 例:NonameTest.java,5.2 注册监听器方法,5.3 窗口事件

8、,与窗口相关的事件源是WindowEvent,窗口事件的监听器: WindowListener listener= Frame.addWindowListener(listener);,窗口监听器必须实现WindowListener接口,WindowListener接口中有七个方法,它们的名字是自解释的,public interface windowListener void windowOpened(WindowEvent e); void windowClosing(WindowEvent e); void windowClosed(WindowEvent e); void windowI

9、conified(WindowEvent e); void windowDeiconified(WindowEvent e); void windowActivated(WindowEvent e); void windowdeactivated(WindowEvent e);,5.3 窗口事件,一、WindowListener接口,每个具有不止一个方法的AWT监听器接口都有一个实现了它的所有方法,但却不做任何工作的适配器类.,例:WindowAdapter类,通过扩展适配器类来实现需要的动作,适配器类动态地满足了Java 中实现监视器类的技术要求,5.3 窗口事件,二、适配器类,例:定义一个

10、类,扩展WindowAdapter类,继承六个空方法,重写WindowClosing():,5.3 窗口事件,class Terminator extends WindowAdapter public void windowClosing (WindowEvent e) System.exit(0); ,只要框架产生一个窗口事件,该事件就会传递给监听器对象,上面语句也可简化为: frame.addWindowListener(new Terminator();,5.3 窗口事件,三、注册事件监听器,WindowListener listener=new Terminator(); frame.

11、addWindowListener(listener);,frame.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ) ;,5.3 窗口事件,用匿名类简化,AWT事件类的继承关系,5.3 窗口事件,四、AWT事件层次图,ActionEvent Item AdjustmentEvent KeyEvent ComponentEvent MouseEvent ContainerEvent TextEvent FocusEvent WindowEvent,5.

12、3 窗口事件,AWT事件类型,ActionListener KeyListener AdjustmentListener ContainerListener ComponentListener TextListener FocusListener WindowListener MouseListener ItemListener MouseMotionListener,5.3 窗口事件,java.awt.event包中监听器接口,ComponentAdapter ContainerAdapter FocusAdapter KeyAdapter MouseAdapter MouseMotionA

13、dapter WindowAdapter,5.3 窗口事件,java.awt.event包中适配器,AWT明确区分两种事件: 语义事件和低级事件 语义事件:用于表达用户动作的事件。 如:点击按钮,低级事件:把语义事件变为可能。如:对于一个按钮点击来说,它包括鼠标按下、鼠标移动和鼠标弹起低级事件,5.3 窗口事件,AWT中的事件分类,ActionEvent ItemEvent AdjustmentEvent TextEvent,5.3 窗口事件,语义事件,ComponentEvent MouseEvent ContainerEvent FocusEvent WindowEvent KeyEven

14、t,5.3 窗口事件,低级事件,5.4 鼠标事件,Painter.java,5.4 鼠标事件,1、鼠标事件有5种: 按下鼠标 释放鼠标 击鼠标键 鼠标进入 鼠标退出,一、鼠标事件(MouseListner接口),鼠标事件的类型是MouseEvent,当发生鼠标事件时: MouseEvent类自动创建一个事件对象,以及事件发生位置的x和y坐标,作为事件返回值,5.4 鼠标事件,2. 鼠标事件返回值,getX(),getY(), getPoint() 坐标位置 getModifiers(),isMetaDown() 左或右键 getClickCount() 被点击次数,事件源获得监视器的方法: a

15、ddMouseListener,处理事件源发生的事件接口是: MouseListener,5.4 鼠标事件,3. MouseEvent类中的重要方法,MousePressed(MouseEvent) MouseReleased(MouseEvent) MouseEntered(MouseEvent) MouseExited(MouseEvent) Mouseclicked(MouseEvent),5.4 鼠标事件,3. MouseListener接口中方法,addMouseListener( new MouseListener() / anonymous inner class public void mouseClicked( MouseEvent event ) / event handler called when a mouse button is pressed public void mousePressed( MouseEvent event ) drawJPanelMousePressed( event ); ,5.4 鼠标事件,private void drawJPanelMousePressed( MouseEvent event ) / store the location of the mouse curr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号