编写一个java程序_鼠标在java窗口上的坐标_请问如何在Java中获取窗口外部的鼠标单击坐标...

这篇博客探讨了如何使用AWTEventListener监听屏幕焦点和鼠标事件。当应用程序失去焦点时,可以捕获焦点丢失和鼠标退出事件。作者通过示例代码展示了如何在Java中实现这一功能,但指出这种方法存在局限性,即应用程序一旦失去焦点,监听会受到影响。解决方案是创建一个临时全屏窗口来截取屏幕并继续监听鼠标点击。
摘要由CSDN通过智能技术生成

尽管可能,但可能会受到限制:

为焦点事件添加一个AWTEventListener。只要您的应用在单击按钮之前就具有焦点,就会收到焦点丢失事件。然后查询指针位置。

限制是,当然,您的应用程序失去了焦点。因此,根据最终要实现的目标,这可能没有用。

如果您不想失去焦点,则必须暂时截取整个屏幕的屏幕截图,并将其显示在屏幕填充窗口中,该窗口像往常一样侦听鼠标单击。

第一种方法的证明:

import java.awt.AWTEvent;

import java.awt.MouseInfo;

import java.awt.Toolkit;

import java.awt.event.AWTEventListener;

import javax.swing.JFrame;

public class Application1 {

public static void main(String[] args) {

Toolkit.getDefaultToolkit().addAWTEventListener(

new Listener(), AWTEvent.MOUSE_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK);

JFrame frame = new JFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

private static class Listener implements AWTEventListener {

public void eventDispatched(AWTEvent event) {

System.out.print(MouseInfo.getPointerInfo().getLocation() + " | ");

System.out.println(event);

}

}

}

在产生的应用之外点击:

java.awt.Point[x=198,y=59] | java.awt.event.MouseEvent[MOUSE_EXITED, ...

java.awt.Point[x=976,y=503] | java.awt.FocusEvent[FOCUS_LOST, ...

第二点是在应用程序之外。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值