java AWT教程

上传人:ni****g 文档编号:469581987 上传时间:2023-10-11 格式:DOCX 页数:15 大小:42.78KB
返回 下载 相关 举报
java AWT教程_第1页
第1页 / 共15页
java AWT教程_第2页
第2页 / 共15页
java AWT教程_第3页
第3页 / 共15页
java AWT教程_第4页
第4页 / 共15页
java AWT教程_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《java AWT教程》由会员分享,可在线阅读,更多相关《java AWT教程(15页珍藏版)》请在金锄头文库上搜索。

1、java AWT教程5.2.1 事件类 与AWT有关的所有事件类都由java.awt.AWTEvent类派生,它也是EventObject类的子类。AWT事件共有10类,可以归为两大类:低级事件和高级事件。 java.util.EventObject类是所有事件对象的基础父类,所有事件都是由它派生出来的。AWT的相关事件继承于java.awt.AWTEvent类,这些AWT事件分为两大类:低级事件和高级事件,低级事件是指基于组件和容器的事件,当一个组件上发生事件,如:鼠标的进入,点击,拖放等,或组件的窗口开关等,触发了组件事件。高级事件是基于语义的事件,它可以不和特定的动作相关联,而依赖于触发

2、此事件的类,如在TextField中按Enter键会触发ActionEvent事件,滑动滚动条会触发AdjustmentEvent事件,或是选中项目列表的某一条就会触发ItemEvent事件。 低级事件 ComponentEvent ContainerEvent WindowEvent FocusEvent KeyEvent MouseEvent 高级事件 ActionEvent AdjustmentEvent ItemEvent TextEvent 5.2.2 事件监听器 每类事件都有对应的事件监听器,监听器是接口,根据动作来定义方法。 例如,与键盘事件KeyEvent相对应的接口是: pu

3、blic interface KeyListener extends EventListener public void keyPressed(KeyEvent ev); public void keyReleased(KeyEvent ev); public void keyTyped(KeyEvent ev); 注意到在本接口中有三个方法,那么java运行时系统何时调用哪个方法?其实根据这三个方法的方法名就能够知道应该是什么时候调用哪个方法执行了。当键盘刚按下去时,将调用keyPressed( )方法执行,当键盘抬起来时,将调用keyReleased( )方法执行,当键盘敲击一次时,将调用

4、keyTyped( )方法执行。 又例如窗口事件接口: public interface WindowListener extends EventListener public void windowClosing(WindowEvent e); /把退出窗口的语句写在本方法中 public void windowOpened(WindowEvent e); /窗口打开时调用 public void windowIconified(WindowEvent e); /窗口图标化时调用 public void windowDeiconified(WindowEvent e); /窗口非图标化时调用

5、 public void windowClosed(WindowEvent e); /窗口关闭时调用 public void windowActivated(WindowEvent e); /窗口激活时调用 public void windowDeactivated(WindowEvent e); /窗口非激活时调用 AWT的组件类中提供注册和注销监听器的方法: 注册监听器: public void add (listener); 注销监听器: public void remove (listener); 例如Button类: public class Button extends Compo

6、nent public synchronized void addActionListener(ActionListener l); public synchronized void removeActionListener(ActionListener l); 5.2.3 AWT事件及其相应的监听器接口(1) 5.2.3 AWT事件及其相应的监听器接口(2) 例5.10说明事件处理模型的应用。 例5.10 import java.awt.*; import java.awt.event.*; public class ThreeListener implements MouseMotionL

7、istener,MouseListener,WindowListener /实现了三个接口 private Frame f; private TextField tf; public static void main(String args) ThreeListener two = new ThreeListener; two.go; public void go f = new Frame(Three listeners example); f.add(new Label(Click and drag the mouse),North); tf = new TextField(30); f.

8、add(tf,South); /使用缺省的布局管理器 f.addMouseMotionListener(this); /注册监听器MouseMotionListener f.addMouseListener(this); /注册监听器MouseListener f.addWindowListener(this); /注册监听器WindowListener f.setSize(300,200); f.setVisible(true); public void mouseDragged (MouseEvent e) /实现mouseDragged方法 String s = Mouse draggi

9、ng : X=+e.getX+Y = +e.getY; tf.setText(s); public void mouseMoved(MouseEvent e) /对其不感兴趣的方法可以方法体为空 public void mouseClicked(MouseEvent e) public void mouseEntered(MouseEvent e) String s = The mouse entered; tf.setText(s); public void mouseExited(MouseEvent e) String s = The mouse has left the buildin

10、g; tf.setText(s); public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) public void windowClosing(WindowEvent e) /为了使窗口能正常关闭,程序正常退出,需要实现windowClosing方法 System.exit(1); public void windowOpened(WindowEvent e) /对其不感兴趣的方法可以方法体为空 public void windowIconified(WindowEvent e) public

11、 void windowDeiconified(WindowEvent e) public void windowClosed(WindowEvent e) public void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e) 上例中有如下几个特点: 1可以声明多个接口,接口之间用逗号隔开。 implements MouseMotionListener, MouseListener, WindowListener; 2可以由同一个对象监听一个事件源上发生的多种事件: f.addMouseM

12、otionListener(this); f.addMouseListener(this); f.addWindowListener(this); 则对象f 上发生的多个事件都将被同一个监听器接收和处理。 3事件处理者和事件源处在同一个类中。本例中事件源是Frame f,事件处理者是类ThreeListener,其中事件源Frame f是类ThreeListener的成员变量。 4可以通过事件对象获得详细资料,比如本例中就通过事件对象获得了鼠标发生时的坐标值。 public void mouseDragged(MouseEvent e) String s=Mouse dragging :X=+

13、e.getX+Y=+e.getY; tf.setText(s); Java语言类的层次非常分明,因而只支持单继承,为了实现多重继承的能力,Java用接口来实现,一个类可以实现多个接口,这种机制比多重继承具有更简单、灵活、更强的功能。在AWT中就经常用到声明和实现多个接口。记住无论实现了几个接口,接口中已定义的方法必须一一实现,如果对某事件不感兴趣,可以不具体实现其方法,而用空的方法体来代替。但却必须所有方法都要写上。 5.2.4 事件适配器 Java语言为一些Listener接口提供了适配器(Adapter)类。可以通过继承事件所对应的Adapter类,重写需要方法,无关方法不用实现。事件适配器为我们提供了一种简单的实现监听器的手段, 可以缩短程序代码。但是,由于java的单一继承机制,当需要多种监听器或此类已有父类时,就无法采用事件适配器了。 1事件适配器-EventAdapter 下例中采用了鼠标适配器: import java.awt.*; import java.awt.event.*; public class MouseClickHandler extends MouseAdaper public void mouseCli

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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