私たちが書いているソフトウェアでは、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 イベントから発生した場合、コードの上記の時点で調べる方法はありますか?