JAVA图形界面(GUI)之事件处理机制
来源:互联网 发布:成就最高的女演员知乎 编辑:程序博客网 时间:2024/05/22 01:44
之前几篇博客中,我们编写了一些示例,但是这些示例并不能与读者进行交互,读者之所以对图形界面感兴趣,就是因为图形界面与读者交互能力强。但是单纯的界面是没有使用价值的,要是图形界面能与读者交流,那么必须了解java的事件处理机制。
首先组件要先注册事件处理器,当读者单击组件、移动鼠标或者敲击键盘都会产生事件(Event)。一旦有事件产生,应用程序做出对该事件的响应,这些组件就是事件源(Event Source)。接受、解析和处理事件,实现和读者交互的方法称之为事件处理器(Event Handler)。他们之间的工作关系如图:
事件源可以产生多种不同类型的事件,可以注册多种不同类型的事件监听器。当组件上发生某种事件,生成相应的事件对象,该对象中封装了有关该事件的各种信息。该对象被传递到相应的注册的事件处理器,这时事件的处理方法才执行。
事件监听器
事件监听器是类库中的一组接口,每种事件类都有一个负责监听这种事件对象的接口。接口中定义了处理该事件的抽象方法。
接口只是一个抽象定义,要想使用必须实现它。所以每次对事件进行处理是调用对应接口的实现类中的方法。当事件源产生事件并生成事件对象,该对象被送到事件处理器中,处理器调用接口实现类对象中的相应方法来处理该事件。
要想启动相应的事件监听器必须在程序中注册它。
import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;/** * 事件监听器示例 * * @author jianggujin * */public class EventDemo extends JFrame{ public EventDemo() { super("EventDemo"); JButton btn1 = new JButton("按钮1"); // 注册监听器 btn1.addActionListener(new ButtonClick()); add(btn1); setSize(300, 300); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new EventDemo(); }}/** * 实现动作监听器 * * @author jianggujin * */class ButtonClick implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { // 获得事件源 Object obj = e.getSource(); // 判断是否为按钮 if (obj instanceof JButton) { JButton srcBtn = (JButton) obj; System.out.println("您单击了按钮:" + srcBtn.getText()); } else { System.out.println("未知事件源"); } }}
当单击按钮时,将生成事件对象,对象中包含了事件源(按钮)的信息传送到已注册的事件监听器,监听器调用相应方法并将该对象传入。
事件的种类
JAVA处理事件响应的类和监听接口大多位于AWT包中。在java.swing.event
包中有专门用于Swing组件的事件类和监听接口。
AWT事件类继承自AWTEvent,他们的超类是EventObject。在AWT事件中,事件分为低级事件和语义事件。语义事件是对某些低级事件的一种抽象概括,是单个或多个低级事件的某些特例的集合。
常用低级事件有:
常用语义事件有:
常用事件和事件监听器如下:
事件适配器
事件适配器其实就是一个接口的实现类,实际上适配器类只是将监听接口方法中的方法全部实现成空方法。这样在定义事件监听器时就可以继承该实现类,并重写所需要的方法,不必实现覆盖所有方法了。常用的事件适配器类有如下击中
- JAVA图形界面(GUI)之事件处理机制
- **JAVA** GUI图形界面编程-事件监听机制
- JAVA图形界面(GUI)之容器
- JAVA图形界面(GUI)之常用组件
- JAVA图形界面(GUI)之布局管理器
- JAVA图形界面(GUI)之表格
- JAVA图形界面(GUI)之菜单
- java图形界面(GUI)
- JAVA图形界面(GUI)
- Java基础之图形界面GUI
- Java GUI之事件监听与处理
- java gui事件处理
- JAVA GUI 事件处理
- java GUI(2)--事件机制
- 用Java事件处理机制实现GUI录制回放功能
- Java GUI编程中的事件处理机制详细讲解
- Java GUI编程中的事件处理机制详细讲解
- Java GUI编程中如何进行事件处理机制
- MFC VC++6.0列表控件的使用
- 文件操作与字符处理
- C语言数组与字符串初始化
- UIButton, UILabel, UITextField
- vs2012环境下,cocos2dx3.4 c++项目调用Lua的环境搭建
- JAVA图形界面(GUI)之事件处理机制
- BCache源码浅析之二数据结构与操作
- 使用excel组件时的权限设置
- 2015年书单
- zzulioj--1799--wrz的压岁钱(贪心)
- LeetCode-36-Valid Sudoku(模拟/遍历)-Easy
- Android 开发环境安装配置 JDK1.8.0+Android studio
- iOS不同版本适配问题(#ifdef __IPHONE_7_0)
- OC类方法