Java点滴

这是我网上看到的文章 觉得蛮有用 就记录下来了

请参考文章

下面总结一下关于JAVA事件处理机制。
JAVA是通过授权处理机制来对事件进行处理,那么授权处理机制是什么意思呢?

一、首先要理解几个重要的概念:
1、事件源。能够产生事件的对象都称为事件源,也就是JAVA认为能够发生事件的对象。如按钮(JButton button)、文本区(JTextArea textarea)、下拉式列表等。
2、事件。事件源能产生特定的事件,如按钮会产生ActionEvent事件等。JAVA定义了很多种事件,命名为XXXEvent。其实所谓的事件就是我们在界面上对组件的处理。
3、监视器。监视器用来对事件源进行监听,以便对事件源发生的事件做出处理。什么是监视器呢?只要一个对象(实际上这里是一个类)实现了监视器接口就能成为监视器。例如事件源所在的容器对象(类),或者其他任何对象(类),一旦实现了事件监视器接口,该类就会自动增加一个事件处理方法,然后我们把事件处理的代码加入其中就可以了。

事件源发生事件以后,监视器代替事件源对发生的事件进行处理,这就是JAVA事件授权处理机制。

JAVA事件处理过程如下
当事件源发生事件时,监视器会自动调用被实现的接口方法,对事件处理的代码就可以放置在该方法中。

直接看代码吧 实现了一点点

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import javax.swing.*;


public class Frame extends JFrame {
    public Frame(){

        /***
        事件源   事件   监视器


        事件源发生事件以后,监视器代替时间源对发生的事件进行处理 这就是java事件授权处理机制


        常用的组件事件处理
            1、事件源:JButton
              事件:ActionEvent
              监视器接口:ActionListener
              接口方法:void actionPerformed(ActionEvent e)
              事件源对象添加监视器对象方法:事件源对象.addActionListener(监视器对象);
            2、事件源:JTextArea
               事件:DocumentEvent
               监视器接口:DocumentListener
               接口方法: void changedUpdate(DocumentEvent e)
                          void insertUpdate(DocumentEvent e)
                         void  removeUpdate(DocumentEvent e)
                事件源对象添加监视器对象的方法:事件源对象.getDocment.addDocumentListener(监视器对象)
              3、事件源:JRadioButton
                 事件:ItemEvent
                 监视器接口:ItemListener
                 接口方法:void itemStateChanged(ItemEvent e)
                 .addItemListener()
              4、
        鼠标事件处理
           当鼠标进入/退出组件 在组件上面单击及拖动鼠标时,会发生鼠标事件。上面的事件处理适用于特定的组件,而该事件处理在任何组件上都可以发生,
           即事件源可以是任何组件,只要添加监视器对象即可

               事件源:任何组件
               事件:MouseEvent
               监视器接口:MouseListener
               接口方法:mousePressed(MouseEvent e)
                         mouseReleased(MouseEvent e)
                       mouseEnter(MouseEvent e)
                       mouseExited(MouseEvent e)
                       mouseClicked(MouseEvent e)
                事件源对象添加监视器对象的方法:事件源对象.addMouseListener(监视器对象);
            另外 当在事件源上拖动鼠标指针或者在事件源上移动鼠标指针时,可以通过MouseMotionListener接口来对事件进行处理
                事件:MouseEvent
                接口:MouseMotionListener
                接口方法:mouseDragged(MouseEvent e)
                     mouseMoved(MouseEvent e)
                添加监视器:事件源.addMouseMotionListener(监视器对象)

        键盘事件处理
           键盘事件发生在按下 释放或者敲击键盘时,当一个组件处于激活状态时,敲击键盘上的键就发生键盘事件

              事件:KeyEvent
              接口:KeyListener
              接口方法:void keyPressed(KeyEvent e)
                 void keyTyped(KeyEvent e)
                void keyRelease(KeyEvent e)
              添加监视器:事件源.addKeyListener(监视器对象);
        窗体事件
            Window类子类所创建的对象都可以发生WindowEvent类型窗体事件,当一个窗体被激活 撤销激活 打开 关闭或撤销图标化,就会发生窗体事件
            事件源:JFrame
            事件:WindowEvent事件
            监视器接口:WindowListener
            添加监视器:事件源.addWindowListener(监视器对象);


        */
        super("EventDemo");
        JButton btn1 = new JButton("按钮");
        btn1.addActionListener(new ButtonClick());
        add(btn1);
        setSize(300,300);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
    public static void main(String args[]){
        new Frame();
    }

}


class ButtonClick extends JFrame implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e){
        //获得事件源
        Object obj = e.getSource();
        //判断是否为按钮
        if(obj instanceof JButton){
            JButton srcBtn = (JButton) obj;
            JOptionPane.showMessageDialog(this,sr


Btn.getText(),"提示窗口",JOptionPane.WARNING_MESSAGE);
        }else{
            System.out.println("未知事件源");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值