我正在维护一个相当大的swing应用程序,并且必须添加一个超时功能,基本上,如果用户在一定时间内未与该应用程序进行交互,则该应用程序应采取特定的操作(例如,关机) )。
由于已经编写了此应用程序,因此要使每个鼠标侦听器/键盘侦听器/任何类型的输入侦听器扩展/实现一个特定的类/接口来存储上一次用户启动的事件,这将是一项艰巨的任务。 。
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);