事件监听的简单代码

事件监听

当某件事发生,会做什么行为。

package com.jun.lesson01;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestActionEvent {

    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setVisible(true);
        frame.setBounds(200,200,500,200);
        Button button = new Button();
        //MyActionListener myActionListener = new MyActionListener();//实例化对象对下面的事件监听做参数
        button.addActionListener(new MyActionListener());
        frame.add(button);
        frame.pack();//窗口的优化方法
        windowclose(frame);

    }//关闭窗体的事件
    static void windowclose(Frame frame){
       frame.addWindowListener(new WindowAdapter() {
           @Override
           public void windowClosing(WindowEvent e) {
              System.exit(0);
           }
       });
    }
}
class MyActionListener implements ActionListener{//继承事件监听接口
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("666");//当按下按钮控制台打印输入
    }
}

注意:一个类中只有一个public class可以有多个class。同一个类中的方法调用,使用方法名调用即可。

多个按钮共用一个监听事件

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

public class ActionTest01 {
    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setVisible(true);
        frame.setLayout(new BorderLayout());
        frame.setBounds(100,110,500,500);
        Button b1 = new Button();
        Button b2 = new Button();
        b2.setActionCommand("b2-stop");
        MyMonitor myMonitor = new MyMonitor();
        b1.addActionListener(myMonitor);
        b2.addActionListener(myMonitor);
        frame.pack();
        frame.add(b1,BorderLayout.NORTH);
        frame.add(b2,BorderLayout.SOUTH);



    }

}
class MyMonitor implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("按钮被点击了:msg"+e.getActionCommand());
    }
}//多个按钮共用一个监听事件