JAVA中事件处理的总结

本文介绍了JavaSE中事件处理的基本概念及其实现方式,包括事件、事件源与事件处理方法的关系,详细阐述了事件处理的四个主要步骤。同时,文中提供了三种注册事件监听器的方法:通过接口实现、使用事件适配器以及匿名内部类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 事件在JAVA SE的桌面开发是经常用到的,没有事件的组件就像人没有生命一样。有事件必有事件源,要想完成某一功能必须有事件的处理方法,组件和事件相互配合、相互协调才能完成我们想要的结果。事件是一个对象,是对一个事件类型的描述;产生事件的组件我们通常叫做事件源;要想完成某一功能还需有事件处理的方法。
2. 事件处理的主要步骤:
 
1. 首先产生监听器,监听是否有事件源的产生。
2.  在要实现具有事件处理功能的组件上注册监听器。
3.  注册监听器的组件产生事件源,并将事件对象返回给监听器。
4.  有监听器调用相应的方法处理事件。
 
3.注册事件监听器的三种方法:
 
1.通过接口实现
 
package com.neusoft; 
 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
 
public class EventThrouthInterface extends JFrame implements ActionListener { 
    private JButton jb; 
 
    public EventThrouthInterface() { 
        jb = new JButton("确定"); 
        jb.addActionListener(this); 
        this.add(jb); 
        this.setSize(300, 200); 
        this.setDefaultCloseOperation(3); 
        this.setVisible(true); 
 
    } 
 
    public void actionPerformed(ActionEvent e) { 
        this.jb.setText("事件响应了"); 
    } 
 
    public static void main(String[] args) { 
        new EventThrouthInterface(); 
    } 

2.事件适配器。事件适配器和匿名内部类的方式基本相同,只不过适配器是JAVA中为了简化 编程而提供的类,该类默认的实现了相应事件接口中的方法。比如WindowListener接口对应的事件适配器是WindowAdapter,而KeyListener对应的适配器接口是KeyAdapter,这样通过适配器我们就省去了通过接口实现必须实现所有抽象方法的烦恼,应为适配器中已经实现了所有的抽象方法,我们只需重写我们想要实现的方法就可以了。
package com.neusoft; 
 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
 
public class EventThrouthAdapter extends JFrame { 
    private JButton jb; 
 
    public EventThrouthAdapter() { 
        jb = new JButton("确定"); 
        jb.addMouseListener(new MouseAdapter() { 
            public void mouseClicked(MouseEvent e) { 
                jb.setText("事件响应了"); 
            } 
        }); 
        this.add(jb); 
        this.setSize(300, 200); 
        this.setDefaultCloseOperation(3); 
        this.setVisible(true); 
 
    } 
 
    public static void main(String[] args) { 
        new EventThrouthAdapter(); 
    } 

3.匿名内部类。
package com.neusoft; 
 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseListener; 
 
import javax.swing.JButton; 
import javax.swing.JFrame; 
 
public class EventThrouthAdapter extends JFrame { 
    private JButton jb; 
 
    public EventThrouthAdapter() { 
        jb = new JButton("确定"); 
        jb.addMouseListener(new MouseListener() { 
            public void mouseClicked(MouseEvent e) { 
                jb.setText("事件响应了"); 
            } 
 
            public void mouseEntered(MouseEvent e) { 
            } 
 
            public void mouseExited(MouseEvent e) { 
            } 
 
            public void mousePressed(MouseEvent e) { 
            } 
 
            public void mouseReleased(MouseEvent e) { 
            } 
        }); 
        this.add(jb); 
        this.setSize(300, 200); 
        this.setDefaultCloseOperation(3); 
        this.setVisible(true); 
 
    } 
 
    public static void main(String[] args) { 
        new EventThrouthAdapter(); 
    } 
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值