07 事件监听

1.构造事件监听器

package GUI;

import java.awt.*;
import java.awt.event.*;

public class Test06_ActionListener {

    public static void main(String[] args) {


        class Mylistener implements ActionListener{
            public void actionPerformed(ActionEvent e){
                System.out.println("詹建海");
            }
        }
        Mylistener mylistener = new Mylistener();

        Frame frame = new Frame("my frame");
        Button button = new Button("1");
        frame.setVisible(true);
        frame.add(button,BorderLayout.CENTER);
        frame.pack(); // 自适应居中

        // 按钮监听器
        button.addActionListener(mylistener);
        // 窗口监听器
        windowClose(frame);


    }
    public static void  windowClose(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }

}

2.多个按钮共享一个事件监听器

package GUI;

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 Test06_lla {
    // 多个按钮共用同一个监听器,但干着不同的工作
    public static void main(String[] args) {
        Frame frame = new Frame();
        Button button1 = new Button("star");
        Button button2 = new Button("stop");

        frame.setVisible(true);
        frame.add(button1,BorderLayout.WEST);
        frame.add(button2,BorderLayout.EAST);

        button1.setActionCommand("zhan_star");  // 设置按钮的信息,不使用这个函数的话为默认值:标签label


        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        // 多个按钮共用同一个监听器,但干着不同的工作
        MyListener myListener = new MyListener();
        button1.addActionListener(myListener);
        button2.addActionListener(myListener);


    }
}


//
  class MyListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("这个按钮的信息是:"+e.getActionCommand());  // 这个函数获得按钮的信息
        if(e.getActionCommand().equals("star"))
            // do something ,eg:
        System.out.println(1);
        if(e.getActionCommand().equals("stop"))
            // do something ,eg:
            System.out.println(2);
    }

}
posted @   被占用的小海海  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示