MENU

java Action listener Demo

• 2019 年 05 月 31 日 • 阅读: 137 • 源码

package com.ActionListener;
/**
 * 事件响应机制
 * 1.监听器对象是实现某个特殊监听器接口的类的对象
 * 2.事件源能够产生事件,并将事件传递给监听器对象的对象
 * 3.当事件发生,事件源会把事件传递给注册在事件源身上的所有监听器对象。
 * 4.监听器对象根据事件源传递过来的事件消息,对事件进行处理(响应)
 * 关键:
 *     1.事件源,2.监听器对象 3.把监听器对象注册在事件源
 */
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

import sun.net.www.content.image.jpeg;

public class ActionListenerDemo {

    public static void main(String[] args) {
        MyFrame my = new MyFrame();
    }

}

class MyFrame extends JFrame {
    JButton jb1, jb2;
    JPanel jp;

    public MyFrame() {
        jb1 = new JButton("蓝色");// 事件源
        jb2 = new JButton("红色");// 事件源
        // 给事件源注册监听器
        jb1.addActionListener(new A());// A是一个监听器类,new A()就是一个监听器对象
        // 当jb1按钮被按下,就产生一个事件,事件消息是让面板变色,事件被传递给new A()监听器对象,
        // 监听器对象接收到事件(ActionEvent e参数接收对象)后,用对象的actionPerformed方法对事件消息进行处理
        jb2.addActionListener(new A());
        // 给事件源设置动作命令,用来区分是哪个按钮被按下了
        jb1.setActionCommand("aa");
        jb2.setActionCommand("bb");
        // 按钮是事件源,按钮被按下,产生按钮被按下的事件,事件包含让面板改变颜色信息,事件被传递给监听器对象
        jp = new JPanel();
        // 改变jp面板的背景
        jp.setBackground(Color.BLACK);
        this.add(jb1, BorderLayout.NORTH);
        this.add(jp);
        this.add(jb2, BorderLayout.SOUTH);
        this.setTitle("动作响应事件例子");
        this.setSize(400, 300);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    // 监听器类,监听器对象是实现某个特殊监听器接口的类的对象
    class A implements ActionListener {// ActionListener是接口,接口是特殊的抽象类,只包含常量和抽象方法
        public void actionPerformed(ActionEvent e) {
            // 该方法用于对事件消息的处理,事件包含让面板改变颜色信息 ,ActionEvent e接收事件源传递过来的事件
            // 要通过事件的消息判断哪个按钮事件源发出的事件
            if (e.getActionCommand().equals("aa")) {
                // 说明jb1被按下,产生事件
                jp.setBackground(Color.BLUE);
            }
            if (e.getActionCommand().equals("bb")) {
                // 说明jb2被按下,产生事件
                jp.setBackground(Color.RED);
            }
        }
    }
}
- - - The END - - -
  • 文章标题:java Action listener Demo
  • 文章链接:https://gxusb.com/java-ActionListenerDemo.html
  • 版权所有:本文版权归 Get-林林小窝 所有,转载请注明出处!除特殊注明外(如有侵权,请联系 gxggxl@qq.com ),本站原创内容均采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可
  • 广告

    返回文章列表 文章二维码 打赏
    本页链接的二维码
    打赏二维码