GUI programming study notes three-AWT related (button event monitoring)

GUI programming study notes three-AWT related (button event monitoring)


Close window event monitoring, button event monitoring

package pers.ylw.lesson02;

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();
        Button button = new Button();

        //按下按钮,触发事件
        //因为addActionListener()需要一个ActionListener,所以我们需要构造一个ActionListener
        MyActionListener myActionListener = new MyActionListener();
        button.addActionListener(myActionListener);

        frame.add(button,BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
        windowClose(frame); //关闭窗口,自定义方法

    }

    //关闭窗体事件
    private 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("aaa");
    }
}

Multiple buttons, sharing an event monitoring class

  • By setActionCommand()andgetActionCommand()
package pers.ylw.lesson02;

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

//两个按钮,共享一个监听类
public class TestAction2 {
    public static void main(String[] args) {

        Frame frame = new Frame("开始-停止");
        Button button1 = new Button("start");
        Button button2 = new Button("stop");

        //设置按钮触发时返回的命令,不设置默认为button的label
        //可以多个按钮只写一个监听类,在类里根据返回的命令判断执行什么
        button2.setActionCommand("button2-stop");

        MyMonitor myMonitor = new MyMonitor();
        button1.addActionListener(myMonitor);
        button2.addActionListener(myMonitor);

        frame.add(button1,BorderLayout.NORTH);
        frame.add(button2,BorderLayout.SOUTH);

        frame.pack();
        frame.setVisible(true);
    }
}

class MyMonitor implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        //getActionCommand()获取前面的setActionCommand(), 可以与if结合使用来进行不同的操作
        System.out.println("按钮被点击了:msg=>" + e.getActionCommand());
    }
}

Published 318 original articles · Like 44 · Visitors 20,000+

Guess you like

Origin blog.csdn.net/qq_43594119/article/details/105680170