Java——事件处理机制监听者基础(三)鼠标监听MouseListener

介绍:

MouseListener是监听鼠标信息的接口。

如何设置监听:

对监听者添加MouseListener接口,实现其所有方法,重写需要用到的方法对事件进行处理,最后对事件源注册监听。

代码实现:

确定事件源和监听者 —> 确定事件类型 —> 实现该类型接口 —> 事件处理方法(重写接口方法)—> 事件源注册监听(事件源添加监听者)

写一个程序,以在面板上按下鼠标的地方为起点,鼠标松开的地方为终点,画一个矩形。


界面分析:以界面为事件源,用面板监听,既然与鼠标点击有关,那肯定要实现鼠标监听接口,重写接口中按下和松开的方法,用get方法获得两个位置的坐标作为起点终点坐标。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Graphics_4 extends JFrame{

	MyPanel4 mp;
	public static void main(String[] args) {
		Graphics_4 a=new Graphics_4();
	}
	Graphics_4()
	{
		mp=new MyPanel4();
		this.add(mp);
		this.addMouseListener(mp);	//界面为事件源,面板为监听器
		this.setTitle("我的小程序");
		this.setSize(400, 300);
		this.setLocation(100, 100);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		
	}
}

class Rec1	//创建一个矩形类
{
	int x,y,x1,y1;	//起点和终点坐标
}

class MyPanel4 extends JPanel implements MouseListener		//实现鼠标监听接口
{
	Rec1 rec;
	MyPanel4()
	{
		rec=new Rec1();
	}
	@Override
	public void paint(Graphics g)	//重写JPanel的制图方法
	{	
		super.paint(g);
		drawRec(rec.x-10,rec.y-40,rec.x1-rec.x,rec.y1-rec.y,g);
	}
	public void drawRec(int x1,int y1,int x2,int y2,Graphics g)	//绘制矩形的方法
	{
		System.out.println("drawRec");
		g.setColor(Color.RED);
		g.drawRect(x1, y1, x2, y2);
	}
	//鼠标点击
	@Override
	public void mouseClicked(MouseEvent e) {
		
	}
	//鼠标进入
	@Override
	public void mouseEntered(MouseEvent e) {
		
	}
	//鼠标离开
	@Override
	public void mouseExited(MouseEvent arg0) {
		
	}
	//鼠标按下
	@Override
	public void mousePressed(MouseEvent e1) {	//鼠标按下时,让矩形起点坐标等于按下的坐标
		rec.x=e1.getX();    //利用get获得坐标
		rec.y=e1.getY();
	}
	//鼠标松开
	@Override
	public void mouseReleased(MouseEvent e2) {	////鼠标松开时,让矩形终点坐标等于按下的坐标
		rec.x1=e2.getX();    //利用get获得坐标
		rec.y1=e2.getY();
	repaint();
	}
}


欢迎各位在评论区留言探讨~~

猜你喜欢

转载自blog.csdn.net/weixin_42247720/article/details/80548421