我正在维护一个相当大的摇摆应用程序,我必须添加一个超时功能,基本上如果用户在一定时间内没有与应用程序交互,应用程序应该采取特定操作(例如关闭)。
由于这个应用程序已经编写好了,让每个鼠标监听器/键盘监听器/任何类型的输入监听器扩展/实现一个特定的类/接口来存储用户启动事件的最后一次发生将是一项不可逾越的任务.
Swing 是否已经为这样的事情内置了某种实用程序?除了更改所有鼠标/键盘侦听器之外,实现此功能的好方法是什么?
// 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);
这似乎相关,但是我没有尝试过。
http://tips4java.wordpress.com/2009/08/30/global-event-listeners/
它侧重于 AWTEventListener 的使用,以及与 KeyboardFocusManager 的挂钩。