zoukankan      html  css  js  c++  java
  • Java事件处理机制

    Java事件处理机制涉及三个成员:事件源事件事件监听器
    事件源:Java的AWT或Swing组件,该组件就是事件源,通过new关键字即可创建
    事件:由系统自动产生
    事件监听器:整个事件处理的核心。

    事件监听器必须实现事件监听器接口,以鼠标事件为例

     1 class btnMouseListener(事件监听器的名字) implements MouseListener(鼠标事件监听器接口) {
     2     // 事件处理器(发生不同的事件进行的操作)
     3     // 1. 鼠标进入组件事件
     4     public void mouseEntered(处理器,即事件发生的动作) (MouseEvent(事件名) e) {
     5         System.out.println("鼠标进入按钮");
     6     }
     7     // 2. 鼠标离开组件事件
     8     public void mouseExited (MouseEvent e) {
     9         System.out.println("鼠标离开按钮");
    10     }
    11 }

    完整的事件处理程序

    1. 定义事件监听器类,必须实现XxxListener接口

    2. 完成事件处理器中方法的填写,规定特定的事件发生时执行的动作

    3. 创建事件监听器类的实例并添加进组件

    鼠标进入和离开按钮的事件

     1 package p1;
     2 
     3 import java.awt.event.MouseEvent;
     4 import java.awt.event.MouseListener;
     5 
     6 import javax.swing.JButton;
     7 import javax.swing.JFrame;
     8 
     9 public class MouseEventDemo {
    10     public static void main(String[] args) {
    11         JButton jbtn = new JButton("btn");
    12         
    13         // 3. 创建事件监听器,并添加进组件(事件源)(注册监听器)
    14         BtnMouseListener btnML = new BtnMouseListener();
    15         jbtn.addMouseListener(btnML);
    16         
    17         JFrame jf = new JFrame("事件处理");
    18         jf.add(jbtn);
    19         
    20         jf.setSize(800, 600);
    21         jf.setLocationRelativeTo(null);
    22         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    23         jf.setVisible(true);
    24     }
    25 }
    26 
    27 // 1. 定义事件监听器类,必须实现MouseListener接口
    28 class BtnMouseListener implements MouseListener {
    29     
    30     // 2. 事件处理器,用于响应特定的事件
    31     @Override
    32     public void mouseEntered(MouseEvent e) {
    33         System.out.println("鼠标进入按钮");
    34     }
    35     
    36     @Override
    37     public void mouseExited (MouseEvent e) {
    38         System.out.println("鼠标离开按钮");
    39     }
    40 
    41     @Override
    42     public void mouseClicked(MouseEvent e) {
    43         // TODO Auto-generated method stub
    44         
    45     }
    46 
    47     @Override
    48     public void mousePressed(MouseEvent e) {
    49         // TODO Auto-generated method stub
    50         
    51     }
    52 
    53     @Override
    54     public void mouseReleased(MouseEvent e) {
    55         // TODO Auto-generated method stub
    56         
    57     }
    58 
    59 }

    程序效果:

    事件、监听器和处理器之间的关系

  • 相关阅读:
    NetCore入门篇:(十)Net Core项目使用Cookies
    NetCore入门篇:(九)Net Core项目使用Session及用Redis做分布式
    NetCore入门篇:(八)Net Core项目使用Controller之三
    NetCore入门篇:(七)Net Core项目使用Controller之二
    NetCore入门篇:(六)Net Core项目使用Controller之一
    NetCore入门篇:(五)Net Core项目使用静态文件
    NetCore入门篇:(四)Net Core项目启动文件Startup
    NetCore入门篇:(三)Net Core项目Nuget及Bower包管理
    NetCore入门篇:(二)Net Core项目创建
    NetCore入门篇:(一)Net Core环境安装
  • 原文地址:https://www.cnblogs.com/qintang/p/11598895.html
Copyright © 2011-2022 走看看