一、自身类作为事件监听器
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ActionListenerDemo2 implements ActionListener{
public static void main(String[] args) {
ActionListenerDemo2 ald2 = new ActionListenerDemo2();
ald2.init();
}
public void init(){
JFrame f = new JFrame();//创建一个窗口
JPanel p = new JPanel();//创建一个面板
JButton btn = new JButton("click me");//创建一个按钮
//给按钮绑定事件监听 this表示当前类
btn.addActionListener(this);
p.add(btn);//添加按钮到面板
f.add(p);//添加面板到窗体
f.setSize(400,300);//设置窗体大小
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体后台
f.setVisible(true);//设置窗体可见
}
public void actionPerformed(ActionEvent e) {
System.out.println("类本身实现的方法");
}
}
二、Java事件监听处理——内部类处理
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ActionListenerDemo1 {
public static void main(String[] args) {
ActionListenerDemo1 ald = new ActionListenerDemo1();
ald.init();
}
//自定义一个init方法--初始化窗体界面的
public void init(){
JFrame f = new JFrame(); //创建窗体
JPanel p = new JPanel(); //创建面板
JButton btn = new JButton("点我"); //创建一个按钮
//内部类的实现
//创建一个内部类
InterfaceDemoB b = new InterfaceDemoB();
//将监听器InterfaceDemo绑定到btn按钮上
btn.addActionListener(b);
p.add(btn); //将按钮添加到面板中
f.add(p); //将面板添加到窗体中
f.setSize(400,300); //设置窗体的大小
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗体的后台
f.setVisible(true); //设置窗体可见
}
public class InterfaceDemoB implements ActionListener{
public void actionPerformed(ActionEvent e) {
System.out.println("you click me 了");
}
}
}
三、Java事件监听处理——匿名内部类处理
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ActionListenerDemo3 {
public static void main(String[] args) {
ActionListenerDemo3 ald3 = new ActionListenerDemo3();
ald3.init();
}
public void init(){
JFrame f = new JFrame();
JPanel p = new JPanel();
JButton btn = new JButton("click me");
//使用匿名内部类实现的方式,直接给按钮绑定监听
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
});
p.add(btn);
f.add(p);
f.setSize(400,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
四、Java事件监听处理——外部类处理
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ActionListenerDemo {
public static void main(String[] args) {
JFrame f = new JFrame(); //创建窗体
JPanel p = new JPanel(); //创建面板
JButton btn = new JButton("点我"); //创建一个按钮
//外部类的实现
//创建监听器ActionListener
//new ActionListener();错误,接口不能new
//创建实现子类InterfaceDemo
InterfaceDemo a = new InterfaceDemo();
//将监听器InterfaceDemo绑定到btn按钮上
btn.addActionListener(a);
p.add(btn); //将按钮添加到面板中
f.add(p); //将面板添加到窗体中
f.setSize(400,300); //设置窗体的大小
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗体的后台
f.setVisible(true); //设置窗体可见
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//事件监听器,ActionListener
public class InterfaceDemo implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("你点我了...");
}
}