与AWT有关的所有事件
与AWT有关的所有事件类都由java.awt.AWTEvent类派生,它也是EventObject类的子类。AWT事件共有10类,可以归为两大类:低级事件和高级事件。
java.util.EventObject类是所有事件对象的基础父类,所有事件都是由它派生出来的。AWT的相关事件继承于java.awt.AWTEvent类,这些AWT事件分为两大类:低级事件和高级事件,低级事件是指基于组件和容器的事件,当一个组件上发生事件,如:鼠标的进入,点击,拖放等,或组件的窗口开关等,触发了组件事件。高级事件是基于语义的事件,它可以不和特定的动作相关联,而依赖于触发此事件的类,如在TextField中按Enter键会触发ActionEvent事件,滑动滚动条会触发AdjustmentEvent事件,或是选中项目列表的某一条就会触发ItemEvent事件。
◇ 低级事件
ComponentEvent( 组件事件:组件尺寸的变化,移动)
ContainerEvent( 容器事件:组件增加,移动)
WindowEvent( 窗口事件:关闭窗口,窗口闭合,图标化)
FocusEvent( 焦点事件:焦点的获得和丢失)
KeyEvent( 键盘事件:键按下、释放)
MouseEvent( 鼠标事件:鼠标单击,移动)
◇ 高级事件(语义事件)
ActionEvent(动作事件:按钮按下,TextField中按Enter键)
AdjustmentEvent(调节事件:在滚动条上移动滑块以调节数值)
ItemEvent(项目事件:选择项目,不选择"项目改变")
TextEvent(文本事件,文本对象改变)
事件监听器
每类事件都有对应的事件监听器,监听器是接口,根据动作来定义方法。
例如,与键盘事件KeyEvent相对应的接口是:
public interface KeyListener extends EventListener {
public void keyPressed(KeyEvent ev);
public void keyReleased(KeyEvent ev);
public void keyTyped(KeyEvent ev);
}
注意到在本接口中有三个方法,那么java运行时系统何时调用哪个方法?其实根据这三个方法的方法名就能够知道应该是什么时候调用哪个方法执行了。当键盘刚按下去时,将调用keyPressed( )方法执行,当键盘抬起来时,将调用keyReleased( )方法执行,当键盘敲击一次时,将调用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);
//窗口非图标化时调用
public void windowClosed(WindowEvent e);
//窗口关闭时调用
public void windowActivated(WindowEvent e);
//窗口激活时调用
public void windowDeactivated(WindowEvent e);
//窗口非激活时调用
}
AWT的组件类中提供注册和注销监听器的方法:
◇ 注册监听器:
public void add<ListenerType> (<ListenerType>listener);
◇ 注销监听器:
public void remove<ListenerType> (<ListenerType>listener);
例如Button类:(查API)
public class Button extends Component {
……
public synchronized void addActionListener(ActionListener l);
public synchronized void removeActionListener(ActionListener l);
……}
AWT事件及其相应的监听器接口
表5.1列出了所有AWT事件及其相应的监听器接口,一共10类事件,11个接口。下面这张表应能牢牢记住。
——摘自http://blog.sina.com.cn/s/blog_854c194c0100vewf.html
分享到:
相关推荐
什么是AWT 用AWT构建GUI 事件处理 AWT组件类库
本文将深入探讨AWT事件控制的关键点、事件结构、基本事件控制策略,以及如何使用多个监听器和匿名类。 首先,事件控制是GUI编程中不可或缺的一环。在Java中,事件处理采用授权事件模型,其中事件源(通常是GUI组件...
- AWT事件处理是线程安全的,因为它在一个单独的线程(事件调度线程)中运行,这避免了与应用程序的其他部分产生竞态条件。 8. **事件适配器(Event Adapter)**: - 为了简化编程,AWT提供了事件适配器类,如...
Java AWT(Abstract Window ...总结来说,Java AWT事件处理是构建交互式图形用户界面的关键,理解事件源、事件、监听器和事件处理方法的概念,以及如何在代码中实现它们,对于任何Java GUI开发者都是至关重要的。
SWT的事件处理机制与AWT和Swing有所不同。在SWT中,事件和事件监听器是通过事件监听器表(Listener List)来管理的。开发者可以注册一个或多个监听器到组件上,比如Display的PaintListener、Control的MouseListener...
JAVA AWT事件模型是Java图形用户界面开发的基础部分,它主要负责处理用户的交互操作,如鼠标点击、键盘输入等。在AWT(Abstract Window Toolkit)中,事件模型采用了一种称为"冒泡"的机制,即事件从底层组件开始,...
Java教程之AWT事件模型
AWT事件处理模型基于事件监听器(EventListener),它定义了处理特定事件的接口,如ActionListener、MouseListener等。当用户执行特定操作(如点击按钮)时,事件会触发,然后对应的监听器方法会被调用。例如,添加...
- **AWT**:AWT组件是基于操作系统原生控件的,这意味着它们提供了与平台相关的外观和行为。因此,AWT组件在不同的操作系统上可能会有不同的显示效果。 - **Swing**:Swing组件是轻量级的,它们不依赖于底层操作...
AWT事件模型采用授权事件模型(Delegation Event Mode),即事件处理工作是由事件监听器来完成的。事件处理过程包括三个部分:事件、事件源和事件处理。 图形用户界面GUI上的图形操作 GUI组件上的图形操作包括绘制...
Event类是所有AWT事件的基础,而EventListener和EventHandler接口定义了事件处理的接口和方法。 6. **其他类与接口**:如MenuBar、MenuItem、Checkbox、Choice等,用于创建菜单和下拉列表,以及Font、Color等用于...
JAVA编程基础:第七章 AWT 事件模型 总结:类,方法,接口,其中总结了如何获得事件源,实现接口方法,是对awt的一些组件的总结
AWT事件主要分为两类:低级事件和高级事件。 **低级事件**是与组件和容器的基本操作相关的事件,如: 1. `ComponentEvent`:组件尺寸变化或位置移动。 2. `ContainerEvent`:容器内组件的添加或移除。 3. `...
AWT组件及事件处理.PPTAWT组件及事件处理.PPT
在Java中,AWT绘图是通过`Graphics`类来实现的,它是所有可绘制对象的基础。当你创建一个AWT组件,如`Canvas`或`Panel`,你可以重写`paint`或`update`方法来进行自定义绘图。这些方法会得到一个`Graphics`对象,你...
- **System Event Queue**:这是AWT中最核心的事件队列,处理所有AWT和Swing组件的事件。 - **Application Event Queue**:对于Swing应用,还有一个应用级事件队列,允许开发者自定义事件处理逻辑。 6. **队列与...
AWT组件,Check,事件 容器、 组件和布局管理器 讲述AWT组件的使用,常用属性和方法.
在GUI应用程序中,通常推荐使用Event Dispatch Thread (EDT) 来处理所有的UI更新,因为它是负责处理所有AWT事件的单一线程。如果在非EDT线程中修改UI组件,可能会导致线程安全问题和UI不一致。 下面将详细介绍这两...