JavaGUI(但期末速成版)之事件监听和处理

发布时间:2023年12月22日

点击返回标题->JavaGUI期末速成版-CSDN博客


前言

依旧先声明,本篇记录的JavaGUI编程都是十分精简的,内容只取常用的、套路的、应付期末考试的。


我先放两张ppt的原内容。。。?

看完(我觉得你可能都没看完),摊牌了,我也没看完。。。好复杂,看不懂/(ㄒoㄒ)/~~

无所谓,只要会用就行了,而且出于应对期末考的目的,本篇只研究按下按钮的事件监听和处理。

套路模板一

①写一个自定义类my_listener,实现ActionListener这个接口,并重写其中的actionPerformed方法(这个方法就固定接收一个ActionEvent类好了,记不住没关系,编译器都能自动生成!),比如这样:

class my_listener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("按钮被点击了呃!");
    }
}

②创建容器和按钮组件,对按钮添加自定义监听类对象(通常这里会用匿名对象的写法,因为一个按钮对应一个事件,只用一次),最后把按钮塞到容器中。

创建容器和按钮组件,对按钮添加自定义监听类对象,最后把按钮塞到容器中。
JPanel pane = new JPanel();
JButton button = new JButton("这是一个按钮");
button.addActionListener(new my_listener());
pane.add(button);

③处理一下其它窗口、容器的细节,该显示的显示,该设置大小的设置大小,等等等。。。

完整模板代码如下:

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

class my_listener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("按钮被点击了呃!");
    }
}

public class Main {

    public static void createGUI() {
        JFrame fr = new JFrame("这是主窗口");//通常直接在有参构造的时候命名,省得后续用setTitle()方法命名了。
        fr.setSize(400, 250);//设置窗体宽高
        fr.setLocation(400, 300);//设置窗体坐标
        //下面这行代码的作用和上面两行被注释的代码的作用一模一样,不信你试试~
        //fr.setBounds(400, 300, 400, 250);
        fr.setVisible(true);//设置窗体可见,基本必写吧?
        fr.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置窗体关闭按钮响应事件为关闭此窗口。

        //创建容器和按钮组件,对按钮添加自定义监听类对象,最后把按钮塞到容器中。
        JPanel pane = new JPanel();
        JButton button = new JButton("这是一个按钮");
        button.addActionListener(new my_listener());
        pane.add(button);
        //把容器放在窗口中
        fr.add(pane);
    }

    public static void main(String[] args) {
        createGUI();
    }
}


套路模板二?

套路二和套路一的main方法中的代码几乎一样,唯一的区别在于套路一走的思路是自定义子类实现接口ActionListener,然后用自定义子类去创建对象。

而套路二,我们直接利用匿名内部类(如果忘了见本篇Java内部类-CSDN博客的标题二的子标题④学习)的思路去创建ActionListener的实例化化对象,具体代码如下:

button.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
    System.out.println("按钮被点击了呃~");
    }
});

完整模板代码如下:

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


public class Main {

    public static void createGUI() {
        JFrame fr = new JFrame("这是主窗口");//通常直接在有参构造的时候命名,省得后续用setTitle()方法命名了。
        fr.setSize(400, 250);//设置窗体宽高
        fr.setLocation(400, 300);//设置窗体坐标
        //下面这行代码的作用和上面两行被注释的代码的作用一模一样,不信你试试~
        //fr.setBounds(400, 300, 400, 250);
        fr.setVisible(true);//设置窗体可见,基本必写吧?
        fr.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置窗体关闭按钮响应事件为关闭此窗口。

        //创建容器和按钮组件,对按钮添加自定义监听类对象,最后把按钮塞到容器中。
        JPanel pane = new JPanel();
        JButton button = new JButton("这是一个按钮");
        button.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("按钮被点击了呃~");
            }
        });
        pane.add(button);
        //把容器放在窗口中
        fr.add(pane);
    }

    public static void main(String[] args) {
        createGUI();
    }
}

效果和模板一没区别,就不展示了。?


学会上面两个套路后,根据题目要求,修改对应的响应事件即可。

文章来源:https://blog.csdn.net/liKeQing1027520/article/details/135141275
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。