Java 上次用户启动事件的时间
我正在维护一个相当大的swing应用程序,我必须添加一个超时功能,基本上,如果用户有一段时间没有与应用程序交互,应用程序应该采取特定的操作(例如关闭) 由于该应用程序已经编写完成,因此让每一个鼠标侦听器/键盘侦听器/任何类型的输入侦听器扩展/实现一个特定的类/接口将是一项无法克服的任务,该类/接口将存储上次用户启动的事件发生的时间Java 上次用户启动事件的时间,java,swing,Java,Swing,我正在维护一个相当大的swing应用程序,我必须添加一个超时功能,基本上,如果用户有一段时间没有与应用程序交互,应用程序应该采取特定的操作(例如关闭) 由于该应用程序已经编写完成,因此让每一个鼠标侦听器/键盘侦听器/任何类型的输入侦听器扩展/实现一个特定的类/接口将是一项无法克服的任务,该类/接口将存储上次用户启动的事件发生的时间 swing是否已经为类似这样的东西内置了某种功能?除了更改所有鼠标/键盘侦听器之外,实现此功能的好方法是什么?这似乎很相关,但我没有尝试过 它着重于AWTEvent
swing是否已经为类似这样的东西内置了某种功能?除了更改所有鼠标/键盘侦听器之外,实现此功能的好方法是什么?这似乎很相关,但我没有尝试过
它着重于AWTEventListener的使用,以及与Keyboard FocusManager的连接。到目前为止您研究了什么?我在AWTEvent和EventObject中查找了任何有用的字段,但没有看到任何内容。我也在谷歌上搜索了一下,但什么也找不到。我确实在事件队列中看到了getmostrecenteventimeex(),但这可能适用于重新绘制事件(不是用户启动的),方法是package-private。另外,我也在查看Toolkit.addAWTEventListener(…),这正是我所需要的。谢谢我在上面的评论是正确的,但所有适当的活动面具也都有帮助。
// the event mask; adjust as desired
long eventMask =
AWTEvent.KEY_EVENT_MASK |
AWTEvent.MOUSE_EVENT_MASK |
AWTEvent.MOUSE_MOTION_EVENT_MASK |
AWTEvent.INPUT_METHOD_EVENT_MASK;
// install a listener for receiving global events
Toolkit.getDefaultToolkit().addAWTEventListener(yourListenerInstance, eventMask);