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

Java中的事件处理

2014-03-02 14:44 190 查看
图形用户界面提供人机交互的页面,但业务功能实现是通过事件驱动来完成的。在图形用户界面中,程序的运行是由于某个事件的发生,使事件源监听到该事件并进行处理。如使用鼠标(事件)单击一个按钮(事件源),按钮监听到事件后进行下一步的处理。事件处理中有三个主要的概念:事件、事件源和事件处理。事件源是产生事件的对象;事件处理负责处理事件;事件是在事件源和事件监听器间传递信息的桥梁。他们之间的关系是:当事件源产生事件时,通过调用监听器相应的办法进行事件处理。

对事件的处理是通过事件监听器实现的。首先需要在事件源中登记事件监听器。当有事件发生时,java虚拟机就生成一个事件对象,事件对象记录并处理该事件所需的各种信息。当事件源收到事件对象时,就会启动在该事件源中注册的事件监听器,并将相应事件对象传送到对应的事件监听器中进行事件的处理。每类时间都有相应的事件监听器,监听器是接口,根据动作来定义方法。监听器对象必须实现相应的监听器接口。下面是事件处理的简单应用:

/*

* 监听器

*/

package com.listener;

import java.awt.Dimension;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.JButton;

import javax.swing.JFrame;

class ButtonActionListener implements ActionListener{

@Override

public void actionPerformed(ActionEvent e) {

System.out.println("按钮被单击");

}

}

class ButtonMouseListener implements MouseListener{

@Override

public void mouseClicked(MouseEvent e) {

}

@Override

public void mousePressed(MouseEvent e) {

}

@Override

public void mouseReleased(MouseEvent e) {

}

@Override

public void mouseEntered(MouseEvent e) {

System.out.println("鼠标进去了");

}

@Override

public void mouseExited(MouseEvent e) {

System.out.println("鼠标出去了");

}

}

public class EventListenerDemo {

public static void main(String[] args) {

JFrame frame = new JFrame("事件监听器");

frame.setPreferredSize(new Dimension(400,300));

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLocationRelativeTo(null);

JButton button = new JButton("单击我");

ButtonActionListener listener = new ButtonActionListener();

button.addActionListener(listener);

button.addMouseListener(new ButtonMouseListener());

frame.add(button);

frame.pack();

frame.setVisible(true);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: