从 AWTEvent 确定是不是为 Mouse_Exited 事件

Posted

技术标签:

【中文标题】从 AWTEvent 确定是不是为 Mouse_Exited 事件【英文标题】:Determine from AWTEvent if it is a Mouse_Exited event从 AWTEvent 确定是否为 Mouse_Exited 事件 【发布时间】:2015-07-26 05:08:11 【问题描述】:

在我们正在编写的软件中,我们有时会使用 GlassPane 来防止用户在程序繁忙时与它进行交互,这会产生意想不到的副作用,即某些按钮的翻转被设置但没有被删除.

翻转设置,玻璃窗格激活,玻璃窗格消耗 mouse_exit 事件。

GlassPane 注册为:

Toolkit.getDefaultToolkit().addAWTEventListener(this, 
                AWTEvent.MOUSE_EVENT_MASK | AWTEvent.KEY_EVENT_MASK
                | AWTEvent.MOUSE_MOTION_EVENT_MASK 
                | AWTEvent.MOUSE_WHEEL_EVENT_MASK );

因为我们发现我们也需要捕捉鼠标运动和鼠标滚轮事件。

public void eventDispatched(AWTEvent event) 
            if (event instanceof KeyEvent) 
                ((KeyEvent)event).consume();
             else if (event instanceof MouseEvent) 
                ((MouseEvent) event).consume();
            

如果事件来自 Mouse_Exit 事件,是否可以在上述代码中找出?

【问题讨论】:

检查MouseEvent#getID并与MouseEvent. MOUSE_EXITED进行比较 谢谢你,这正是我需要做的,它很好地解决了问题 【参考方案1】:

也许您可以使用Disabled Glass Pane 方法。它将侦听器添加到 GlassPane 以拦截事件。

该代码当前不使用 MouseWheelListener,因此您可能需要添加它。

【讨论】:

以上是关于从 AWTEvent 确定是不是为 Mouse_Exited 事件的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式确定用户是不是从 iOS 中的 Adwords 转换而来,或者是不是可以将此数据转换为用户属性?

确定是不是从 FCM 通知调用活动

Java Servlet:确定请求是不是为 AJAX 的最佳方法

EventQueue 事件队列

PHP:我如何通过他/她的 IP 地址确定某人是不是来自美国?

确定是不是可以通过组合单个分数来确定某个分数