超萌新级的Java学习心得——简单监听器

本文深入讲解了Java中监听器的概念及应用,包括ActionListener、MouseListener、MouseMotionListener和KeyListener等,通过实例演示如何为按钮添加事件监听,实现按钮状态的改变。

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

      之前在界面文章中提到,按钮在没有设置事件监听时,无论怎么按都不会起作用,如果要使这些按钮被按下时可以执行不同的操作,就必须使用监听器。

ActionListener:可以提供用于监听按钮的监听器,一旦有按钮被按下就会调用其方法actionPerformed,执行里面的内容。

方法actionPerformed:

 

public void actionPerformed(ActionEvent e) {
		//ActionEvent为按钮点击事件
	}

 

一般需要创建一个类来实现这个接口,然后在按钮实例上调用addActionListener()方法使监听器在该按钮上生效。

      例子:一个简单的模拟开关

      实现监听器的类:

     

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;

public class Button_Listener implements ActionListener {
	//实现ActionLsitener接口
	JLabel jl = new JLabel();
	JButton jb = new JButton();
	//创建成员变量用于存传进来的标签和                                                                                                                                                                                                                                                                                                                                                                    
	
	public Button_Listener() {
		// TODO Auto-generated constructor stub

	}

	public Button_Listener(JLabel jl, JButton jb) {
		this.jl = jl;
		this.jb = jb;//构造函数中传入标签和按钮
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		String str = e.getActionCommand();//获得触发事件的按钮的Text
		if (str.equals("按下")) {
			if (jl != null) {
				jl.setText("按钮按下");//切换组件的Text
				jb.setText("已按下");
			}
		}
		
		if (str.equals("已按下")) {
			if (jl != null) {
				jl.setText("没按下按钮");
				jb.setText("按下");
			}
		}
		
		//根据不同的Text引发不同的操作。
	}
	
}

     

      主程序:

     

import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Listener_Example {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Listener_Example l = new Listener_Example();
		l.show();
	}

	public void show() {
		JFrame jf = new JFrame();
		jf.setSize(200, 200);
		jf.setLocationRelativeTo(null);//创建一个界面

		FlowLayout f = new FlowLayout();
		jf.setLayout(f);//流式布局

		JButton jb = new JButton("按下");
		jb.setPreferredSize(new Dimension(100, 50));
		jf.add(jb);

		JLabel jl = new JLabel("没按下按钮");
		jl.setPreferredSize(new Dimension(100, 50));
		jf.add(jl);

		Button_Listener btListener = new Button_Listener(jl, jb);//创建一个监听器实例
		jb.addActionListener(btListener);//为按钮添加监听器
		
		jf.setDefaultCloseOperation(3);
		jf.setVisible(true);

	}

}

     

      结果:

      没按之前

      按下之后

 

 

MouseListener,MouseMotionListener:用于监听鼠标的事件,一共有以下一堆方法:

MouseListener内:

      mouseClicked:鼠标在监听器所监听的组件点击后触发。

      mouseEntered:鼠标进入所监听组件后触发。

      mouseExited:鼠标离开所监听组件后触发。

 

      MouseMotionListener内:

      mousePressed:鼠标在监听器所监听的组件按下后触发。

      mouseReleased:鼠标在监听器所监听的组件释放后触发。

      mouseDragged:鼠标在监听器所监听的组件拖动时触发。

      mouseMoved:鼠标在监听器所监听的组件移动时触发。

 

      KeyListener:用于监听键盘的事件,有以下方法:

 

      keyPressed:键盘在焦点是所监听的组件时按下触发。

      keyReleased:键盘在焦点是所监听的组件时释放触发。

      keyTyped:在键盘输入的为字符时触发。

 

      同时,一般是在界面(JFrame,JPanel)中使用addMouseListener,addMouseMotionListener,addKeyListener设置,方法同ActionListener。这些会在接下来的绘图板项目中详细介绍。

      监听器远不止这些,想要知道详细的可以查阅有关资料,本人只举例一些比较简单的用于简单的项目编写。

      预告,绘图板项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值