前言
学习了Swing之后,我们可以利用Java绘制许多生动形象的图片,无论是按钮还是标签都已经十分熟悉了,如果对于Swing和AWT还不熟悉的同学,可以查看我的前几篇博客,对Swing和AWT进行入门和复习。
简单实例
点击“OK”按钮,控制台显示显示消息“OK按钮已被点击”,点击“Cancel”按钮,控制台显示消息“Cancel已被点击”
效果
代码
package Test;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestFrame extends JFrame{
public TestFrame() {
//创建两个按钮
JButton jbtOK=new JButton("OK");
JButton jbtCancel=new JButton("Cancel");
//把两个按钮放到panel里面
JPanel panel1=new JPanel();
panel1.add(jbtOK);
panel1.add(jbtCancel);
//把panel添加到框架里面
add(panel1);
//实例化一个监听器,监听器类在下方
OKListenerClass listener1=new OKListenerClass();
CancelListenerClass listener2=new CancelListenerClass();
jbtOK.addActionListener(listener1);
jbtCancel.addActionListener(listener2);
}
public static void main(String[] args) {
JFrame frame=new TestFrame();
frame.setTitle("处理事件");
frame.setSize(200,150);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class OKListenerClass implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("OK按钮已被点击");
}
}
class CancelListenerClass implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Cancel按钮已被按下");
}
}
解析
这里的核心其实ActionListener
class OKListenerClass implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("OK按钮已被点击");
}
}
这里定义了个类,继承自ActionListener,那么需要重写ActionListener中的actionPerformed
方法,在里面输出一条打印语句即可。CancelListenerClass同理。
OKListenerClass listener1=new OKListenerClass();
CancelListenerClass listener2=new CancelListenerClass();
jbtOK.addActionListener(listener1);
jbtCancel.addActionListener(listener2);
实例化两个监听器,把他们增加到按钮里面,按钮的addActionListener方法可以增加监听器。
于是当我们点击OK这个按钮或者Cancel这个按钮的时候,监听器就会响应鼠标的点击,做出相应的操作。
小结
监听器在Java中作为事件驱动的核心,不仅如此,小至软件,大到操作系统,监听器的作用是非凡的。