我有一个相当大的swing应用程序我正在维护,我必须添加一个超时功能,基本上如果用户在一段时间内没有与应用程序交互,应用程序应采取特定的操作(例如关机。)
由于这个应用程序已经编写好了,所以让每个mouselistener / keyboard监听器/任何类型的输入监听器扩展/实现一个特定的类/接口来存储上一次用户是一个不可逾越的任务。发生的事件发生了。
对于像这样的东西,swing已经内置了某种功能吗?在改变所有鼠标/键盘监听器之外,实现此功能的好方法是什么?
答案 0 :(得分:6)
// 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);
答案 1 :(得分:2)
这似乎很相关,但我没有尝试过这个。
http://tips4java.wordpress.com/2009/08/30/global-event-listeners/
重点介绍AWTEventListener的使用,以及挂钩到KeyboardFocusManager。