Java——GUI——事件监听

文章目录

  • 事件监听
  • 多个按钮同一个监听

事件监听

Java——GUI——事件监听_第1张图片

  • 比如QQ的聊天窗口,当我们打字会出现在一个文本框里,又或者我们点击发送或敲键盘上的Enter键就会把文本框里的字符串发送出去,这就是事件监听。
    代码演示
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 TestActionEvent {
    public static void main(String[] args) {
        //按下按钮;触发一系列事件
        Frame frame = new Frame();
        Button button = new Button("button");
        //因为,addActionListener()需要一个ActionListener,所以我们需要构造一个ActionListener
        MyActionListener myActionListener = new MyActionListener();
        button.addActionListener(myActionListener);	//按钮添加事件

        frame.add(button,BorderLayout.CENTER);
        frame.setBounds(400,200,300,300);
        windowsClose(frame);    //关闭窗口
        frame.setVisible(true);

    }
    //关闭窗口事件
    private static void windowsClose(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("Hello World");
    }
}

运行结果
Java——GUI——事件监听_第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 TestActionEvent2 {
    public static void main(String[] args) {
        //按下按钮;触发一系列事件
        Frame frame = new Frame();
        Button button1 = new Button("start");
        Button button2 = new Button("stop");

        //因为,addActionListener()需要一个ActionListener,所以我们需要构造一个ActionListener
        MyActionListener2 myActionListener2 = new MyActionListener2();
        //按钮添加事件
        button1.addActionListener(myActionListener2);
        button2.addActionListener(myActionListener2);
        
        frame.add(button1,BorderLayout.NORTH);
        frame.add(button2,BorderLayout.SOUTH);
        frame.setBounds(400,200,300,300);
        windowsClose(frame);    //关闭窗口
        frame.setVisible(true);

    }
    //关闭窗口事件
    private static void windowsClose(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
class MyActionListener2 implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
		//getActionCommand()方法为获取按钮信息,默认信息为new对象后设置的字符串
        if(e.getActionCommand().equals("start")){
            System.out.println("开始按钮被点击了");
        }else if(e.getActionCommand().equals("stop")){
            System.out.println("停止按钮被点击了");
        }
    }
}

运行结果
Java——GUI——事件监听_第3张图片

  • 因此我们可以很直观的看到,一个监听事件可以监听多个按钮。

你可能感兴趣的:(Java笔记,java,开发语言)