关于在实际项目中监听机制的使用(Java)

本文深入解析Java事件监听机制,包括事件源对象、监听方法、事件接口及处理类的概念。通过示例展示如何构建事件监听器,处理按钮点击事件,绘制随机位置的椭圆。

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

Java的事件监听机制的定义

Java事件监听机制其实是一种对于触发后的相应机制,这种机制通常是在图形界面中使用。比如我们点击一个按钮,或者在文本框中输入一些数据等,程序会进行的一系列的措施进行相应。

1.事件的源对象

(1)在Java的机制中只有容器组件和元素组件可以成为事件源的对象。(2)在图形界面中,一个动作发生的组件,那么这个组件就是事件源对象。
容器组件详见:
链接: Swing中常用容器和组件.
链接: Java中的容器组件和非容器组件.
元素组件:?未在百度上找到

2.事件的监听方法

(1)事件的监听方法是由事件源对象提供的。
(2)事件监听方法的获取是由事件源上的动作执行的。如果有动作发生,事件的监听方法捕获这个动作,并收集事件源对象的信息和它的动作信息,然后把这些信息交给事件接口的对象进行处理。

3.事件接口/事件处理类

事件接口对象拿到信息后,它会根据所做的动作信息(鼠标的点击、键盘的按键信息等)去调用对应的事件处理方法(把动作信息和事件源对象的信息封装到**Event的对象中),执行方法中的代码。

4.程序示例
思路:

(1)构建一个窗体,定义一个“start”按键
(2)定义LoginListener事件处理类,该类继承ActionListener动作事件接口,重写接口中的抽象方法。
(3)实例化LoginListener事件处理对象。
(4)给事件处理类对象添加动作监听方法,指定事件处理类对象。

说明:

事件的源对象:start按键
事件监听方法:addActionListener(ActionListener 1),动作事件监听方法,捕获类似按钮组件上的鼠标点击动作,然后收集事件源对象的信息和动作信息,接着将信息交给ActionListener接口的对象进行处理。
事件接口/事件处理类:ActionListener;ActionListener的对象拿到事件源对象的信息和动作信息后,就会根据动作信息调用事件处理;方法actionPerformed(ActionEvent e),把信息封装到处理方法的ActionEvent参数对象中,最后执行方法中的代码。

代码部分:
//构造窗体
package Login20190318;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;

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

//Draw类继承JFrame类  相当于Draw类就是JFrame类  直接调用JFram类中的属性和方法
public class Draw extends JFrame
{
	//入口主函数
	public void initUI()
	{
		//设置窗口的大小
		this.setSize(1500,600);
		FlowLayout flowlayout=new FlowLayout(FlowLayout.CENTER,5,5);
		this.setLayout(flowlayout);
		//设置按键标题
		JButton button=new JButton("Start");
		this.add(button);
		
		this.setVisible(true);
		
		//使窗体获得绘图板权限
		Graphics graphics=this.getGraphics();
		
		//实例化监听方法类  并传入参数
		DrawLis drawlis=new DrawLis(graphics);
	
		//使按钮button调用监听方法
		button.addActionListener(drawlis);
	}
	
	
	
	public static void main(String[] args) 
	{
		//实例化Draw类并调用入口函数
		Draw draw=new Draw();
		draw.initUI();
		
	}

}
//定义事件监听方法的类
package Login20190318;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.awt.Graphics;

//实现监听接口
public class DrawLis implements ActionListener
{

	private Graphics g;
	
	//构造方法用于传参
	public DrawLis(Graphics g)
	{
		this.g=g;
	}
	
	//定义监听方法,画一个椭圆
	public void actionPerformed(ActionEvent e)
	{
		Random random = new Random();
		int x=random.nextInt(1600);
		int y=random.nextInt(1600);
		g.fillOval(x,y,60,70);
	}
	
}

本文对原文加入了一点自己的理解。

引用链接:https://blog.youkuaiyun.com/weixin_43772533/article/details/88675664

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值