从AWTEvent确定它是否是Mouse_Exited事件

时间:2015-05-14 14:21:18

标签: java awt mouseevent glasspane

在我们编写的软件中,我们有时使用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事件,有没有找到代码中的上述点?

1 个答案:

答案 0 :(得分:0)

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

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