码迷,mamicode.com
首页 > 编程语言 > 详细

Java 事件监听器

时间:2015-05-29 10:10:14      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:java   事件   

事件
      事件是用户在界面上的一个操作(通常使用各种输入设备,如:鼠标、键盘等来完成)。

      当一个事件发生时,该事件用一个事件对象来表示。事件对象有对应的事件类。不同的事件类描述不同类型的用户动作。事件类包含在java.awt.event和javax.swing.event包中。


事件源

      产生事件的组件叫事件源。在一个按钮上单击鼠标时,该按钮就是事件源,会产生一个ActionEvent类型的事件。


事件处理器(事件处理方法)

      事件处理器是一个接收事件对象并进行相应处理的方法。事件处理器包含在一个类中,这个类的对象负责检查事件是否发生,若发生就激活事件处理器进行处理。


事件监听器类
      包含事件处理器,并负责检查事件是否发生,若发生就激活事件处理器进行处理的类叫做事件监听器类。其实例就是事件监听器对象。事件监听器类必须实现事件监听器接口或继承事件监听器适配器类。
      事件监听器接口定义了处理事件必须实现的方法。事件监听器适配器类是对事件监听器接口的简单实现。目的是为了减少编程的工作量。

      事件监听器接口和事件监听器适配器类也都包含在java.awt.event和javax.swing.event包中。


注册事件监听器
      为了能够让事件监听器检查某个组件(事件源)是否发生了某些事件,并且在发生时激活事件处理器进行相应的处理,必须在事件源上注册事件监听器。这是通过使用事件源组件的以下方法来完成的:

      addXxxListener(事件监听器对象)Xxx对应相应的事件类。

技术分享

技术分享

技术分享

示例:

package test1;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class SimpleActionEvent extends JFrame {

	private JPanel  _contentPane;
	private JButton _jb; // 动作事件
	private JTextField _jt;// 焦点事件
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					SimpleActionEvent frame = new SimpleActionEvent();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public SimpleActionEvent() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);		
		_contentPane = new JPanel();
		_jb = new JButton("我是按钮,单击我");
		_jt = new JTextField("请单击其他地方", 10); 
		
		_contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		_contentPane.setLayout(new FlowLayout());
		
		// 动作事件
		_jb.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				_jb.setText("我被单击了");
			}
		});
		
		// 焦点事件
		_jt.addFocusListener(new FocusListener() {			
			@Override
			public void focusLost(FocusEvent e) {
				// TODO 自动生成的方法存根
				JOptionPane.showMessageDialog(null, "失去焦点");
			}
			
			@Override
			public void focusGained(FocusEvent e) {
				// TODO 自动生成的方法存根
				
			}
		});		
		
		_contentPane.add(_jb);
		_contentPane.add(_jt);
		setContentPane(_contentPane);
	}
}
技术分享

Java 事件监听器

标签:java   事件   

原文地址:http://blog.csdn.net/aoshilang2249/article/details/46129117

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!