您的位置:首页 > 编程语言 > Java开发

JAVA中事件处理的总结

2013-06-03 11:47 549 查看
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(); 
    } 
}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JAVA