什么是事件处理?描述Java事件处理中的组件。
Java中的GUI通过**鼠标**、**键盘**以及各种用户控件(例如**按钮**、**复选框**、**文本字段**等)来处理与用户的交互作为事件。为了实现Java作为**事件驱动编程**,必须正确处理这些事件。
事件处理中的组件
- 事件
- 事件源
- 事件监听器/处理程序
事件
- 事件定义为描述**源对象状态变化**的对象。
- Java在**java.awt.event**包中定义了许多这样的事件类。
- 一些事件包括**ActionEvent**、**MouseEvent**、**KeyEvent**、**FocusEvent**、**ItemEvent**等等。
事件源
- 源是**生成事件的对象**。
- 当该对象的内部状态以某种方式发生变化时,就会发生事件生成。
- 源必须**注册监听器**,以便监听器接收有关特定类型事件的通知。
- 一些事件源包括**按钮**、**复选框**、**列表**、**选择**、**窗口**等等。
事件监听器
- 监听器是一个**在事件发生时收到通知的对象**。
- 监听器有两个主要要求:它应该**注册到一个或多个源对象以接收事件通知**,并且它**必须实现方法来接收和处理这些通知**。
- Java在**java.awt.event**包下定义了一组用于接收和处理事件的接口。
- 一些监听器包括**ActionListener**、**MouseListener**、**ItemListener**、**KeyListener**、**WindowListener**等等。
示例
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class EventListenerTest extends JFrame implements ActionListener { JButton button; public static void main(String args[]) { EventListenerTest object = new EventListenerTest(); object.createGUI(); } void createGUI() { button = new JButton(" Click Me !"); setSize(300,200); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); add(button); button.addActionListener(this); } public void actionPerformed(ActionEvent ae) { if(ae.getSource() == button) { JOptionPane.showMessageDialog(null, "Generates an Action Event"); } } }
输出
广告