java事件监听器使用小结(个人总结,有错请指)

本文介绍了Java中四种常见的事件监听器实现方法:1) 外部定义并创建对象调用;2) 内部匿名内部类定义;3) 外部定义内部调用;4) 构造方法中使用`this`调用。每种方式都展示了如何在图形界面中实现按钮点击事件的响应,弹出消息对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//第一种:外部定义,通过监听器的对象来调用的监听器    


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类定义一个

//对象来自动调用构造方法

       }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值