点击返回标题->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();
}
}
效果和模板一没区别,就不展示了。?
学会上面两个套路后,根据题目要求,修改对应的响应事件即可。