java-捕捉鼠标在面板上的活动(匿名内部类的实现)

本文介绍了一个Java程序,该程序使用匿名内部类的方法来监听鼠标事件,并记录鼠标点击的详细信息,包括左键、中键、右键的点击以及鼠标在屏幕上的实时坐标位置。通过实例演示了如何在JTextArea组件上实现鼠标点击事件的监听和响应,以及如何在Label组件上显示鼠标当前位置。

鼠标的中键,左键,右键,坐标的位置,记录坐标的位置
代码实现,采用的匿名内部类的方法:

package fangfa.com;

import java.awt.BorderLayout;
import java.awt.Label;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;

import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;

import fangfa.com.Dir.ZouYe;

public class ZuoYe0 {
	private JFrame jf;//窗体
	private Label label;//显示鼠标当前的位置
	private JTextArea jta;//输出鼠标的当前位置
	
	public ZuoYe0() {
		jf = new JFrame("鼠标点击事件");
		jf.setLayout(new BorderLayout());
		label = new Label(" ");
		jta = new JTextArea(50,50);
		jf.setLayout(new BorderLayout());
		jf.add(label,BorderLayout.NORTH);
		jf.add(jta,BorderLayout.CENTER);
		
		jta.addMouseListener(new MouseListener() {			
			@Override
			public void mouseExited(MouseEvent e) {
				jta.append("我来了"+"\n");
				
				
			}
			
			@Override
			public void mouseEntered(MouseEvent e) {
				jta.append("我走了"+"\n");
				
			}
			
			@Override
			public void mouseClicked(MouseEvent e) {
				String str = null;
				switch (e.getButton()) {
				case MouseEvent.BUTTON1:str = "左边";
					break;
				case MouseEvent.BUTTON2:str = "中";
					break;
				case MouseEvent.BUTTON3:str = "右边";
					break;

				default:
					throw new IllegalArgumentException("Unexpected value: " + e.getButton());
				}
				jta.append("鼠标"+str+"键被点击("+e.getX()+","+e.getY()+")"+"\n");
				
				
			}

			@Override
			public void mousePressed(MouseEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void mouseReleased(MouseEvent e) {
				// TODO Auto-generated method stub
				
			}
		});
		jta.addMouseMotionListener(new MouseMotionAdapter() {
			public void mouseMoved(MouseEvent e) {
				label.setText("("+e.getX()+","+e.getY()+")");
			}
		});
		
		jf.setSize(300,300);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//实现窗口的真正关闭
		jf.setVisible(true);
	}
	public static void main(String[] args) {
		ZuoYe0 setYe0 = new ZuoYe0();
	}



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ctrl精

面试很多问题,积攒不容易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值