详解Java Swing中添加鼠标事件的两种方式

今天和一个正在培训java的同学聊天,说起Java Swing中添加事件监听的两种方式。在此就给大家具体说说。

Java Swing中对事件监听有两种方式

1.添加内部监听(也叫匿名内部类方式),实现代码如下:

import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; import javax.swing.JOptionPane; /* * Java Swing添加事件监听(一)匿名内部类方式 * */ public class ActionListennerOne { public static void main(String[] args) { //1.创建一个JFrame:myFrame JFrame myFrame = new JFrame(); //2.设置myFrame的属性:可见、大小 myFrame.setVisible(true); myFrame.setSize(200, 200); //3.创建一个JPanel:myPanel JPanel myPanel = new JPanel(); //4.把myPanel放置在myFrame上 myFrame.add(myPanel); //5.创建一个JButton:myButton JButton myButton = new JButton("按钮1"); //6。把myButton放置在myPanel上 myPanel.add(myButton); //7.给myButton添加事件监听:内部类方式(仔细看,特别是标点符号) myButton.addMouseListener(new MouseListener() { public void mouseReleased(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseClicked(MouseEvent e) { //一个弹框,此处不细说其语法 JOptionPane.showMessageDialog(null,"内部类事件监听监听","注意",0,null); } }); } }


2.第二种(没有什么标准叫法),实现代码如下:

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; import javax.swing.JOptionPane; /* * Java Swing添加事件监听(二) * */ public class ActionListennerTwo { public static void main(String[] args) { ActionFrame test = new ActionFrame(); } } class ActionFrame implements ActionListener{ JButton myButton; public ActionFrame(){ //1.创建一个JFrame:myFrame JFrame myFrame = new JFrame(); //2.设置myFrame的属性:可见、大小 myFrame.setVisible(true); myFrame.setSize(200, 200); //3.创建一个JPanel:myPanel JPanel myPanel = new JPanel(); //4.把myPanel放置在myFrame上 myFrame.add(myPanel); //5.创建一个JButton:myButton myButton = new JButton("按钮2"); //6.把myButton放置在myPanel上 myPanel.add(myButton); //7.myButton添加事件监听(一定注意这句话) myButton.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource()==myButton){ JOptionPane.showMessageDialog(null,"非内部类事件监听","注意",0,null); } } }

关于这两种方法的好坏:

当然就易于维护方法来讲还是第二种方法好,十分清晰。但有时第一种方法很方法,具体什么时候用什么方法,真的看情况。原则上我们是能用第二种方法时我们就用第二种方法。如果感觉第一种方法更方便的地方,再用第一种方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值