什么是事件处理?请描述 Java 中事件处理中的组件?

awtjavaobject oriented programmingprogrammingswing

Java 中的 GUI 将通过鼠标键盘和各种用户控件(例如按钮复选框文本字段等)与用户的交互作为事件进行处理。这些事件需要得到正确处理,才能将 Java 实现为事件驱动编程

事件处理中的组件

  • 事件
  • 事件源
  • 事件监听器/处理程序

事件

  • 事件被定义为描述源对象状态变化的对象。
  • Java 在java.awt.event包中定义了许多这样的事件类
  • 其中一些事件是ActionEventMouseEventKeyEventFocusEvent、 ItemEvent 和等。

事件源

  • 源是生成事件的对象
  • 当该对象的内部状态以某种方式发生变化时,就会生成事件。
  • 源必须注册侦听器,以便侦听器接收有关特定类型事件的通知。
  • 一些事件源是按钮复选框列表选择窗口等。

事件侦听器

  • 侦听器是在事件发生时收到通知的对象。
  • 侦听器有两个主要要求,它应该注册到接收事件通知需要多一个源对象,并且它必须实现接收和处理这些通知的方法
  • Java 在 java.awt.event 包下定义了一组用于接收和处理事件的接口。
  • 其中一些监听器包括 ActionListenerMouseListenerItemListenerKeyListenerWindowListener 等。

示例

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");
      }
   }
}

输出


相关文章