//第一种:外部定义,通过监听器的对象来调用的监听器
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
//定义监听器
class MyListener implements ActionListener
{
public voidactionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"按钮被点击");//弹出消息对话框
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class TestListener{
//主方法
public static void main(String[]args){
//创建图形界面
JFrame frame=newJFrame("监听器的用法");
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);//null即为空,框架在屏幕中居中显示
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel panel=new JPanel();
frame.add(panel);
JButton jbt=newJButton("按钮");
panel.add(jbt);
MyListener mylistener = newMyListener();
jbt.addActionListener(mylistener);
}
}
==============================================================================================
==============================================================================================
//第二种:内部定义调用的监听器(匿名内部类作为事件监听器)
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class TestListener{
//主方法
public static void main(String[]args){
//创建图形界面
JFrame frame=newJFrame("监听器的用法");
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);//null即为空,框架在屏幕中居中显示
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel panel=new JPanel();
frame.add(panel);
JButton jbt=newJButton("按钮");
panel.add(jbt);
//内部定义监听器
jbt.addActionListener(newActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"按钮被点击");//弹出消息对话框
}
});
}
}
==============================================================================================
==============================================================================================
//第三种:外部定义,内部调用的监听器(与第一种类似)
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
//定义监听器
class MyListener implements ActionListener
{
public voidactionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"确认按钮被点击");//弹出消息对话框
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class TestListener{
//主方法
public static void main(String[]args){
//创建图形界面
JFrame frame=newJFrame("监听器的用法");
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);//null即为空,框架在屏幕中居中显示
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel panel=new JPanel();
frame.add(panel);
JButton jbt=newJButton("按钮");
panel.add(jbt);
jbt.addActionListener(newMyListener());
}
}
//第四种:在构造方法中使用this来调用的监听器(自身类作为事件监听器)
import javax.swing.*;
import java.awt.event.*;
class TestListener implements ActionListener{
//构造方法
publicTestListener(){
//创建图形界面
JFrameframe=new JFrame("监听器的用法");
frame.setSize(400,300);
frame.setLocationRelativeTo(null);//null即为空,框架在屏幕中居中显示
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanelpanel=new JPanel();
frame.add(panel);
JButtonjbt=new JButton("按钮");
panel.add(jbt);
//添加监听器
jbt.addActionListener(this);
}
//定义监听器
publicvoid actionPerformed (ActionEvent e){
JOptionPane.showMessageDialog(null,"确认按钮被点击");//弹出消息对话框
}
//主方法
publicstatic void main(String args[]){
new TestListener();//直接调用构造方法,当然你也可以用TestListener类定义一个
//对象来自动调用构造方法
}
}