Java中的事件处理

GUI事件处理机制

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

      对事件的处理是通过事件监听器实现的。首先需要在事件源中登记事件监听器。当有事件发生时,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);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值