如何发现用户有一段时间没有操作Swing应用程序

Eri*_*ang 2 java swing

我们有一个Swing应用程序,目前我需要添加一个功能,当用户不运行应用程序一段时间(例如5分钟)时,该功能可以完成一些工作.我不知道如何实现这个(可能应该监视用户调用的所有动作事件,如果5分钟,甚至没有新的动作引发作业,但不知道如何).任何建议都将不胜感激.

dog*_*ane 5

添加系统范围的AWTEventListener以接收您感兴趣的所有AWTEvent.

例如,以下代码将告诉您鼠标何时进入,退出或在您的swing应用程序中单击.每当用户在您的应用程序中键入任何键时,它也会告诉您.根据此信息,您可以启动计时器以跟踪用户"空闲"时间.

Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
    @Override
    public void eventDispatched(AWTEvent event) {
        System.out.println(event);
    }
}, AWTEvent.MOUSE_EVENT_MASK | AWTEvent.KEY_EVENT_MASK);
Run Code Online (Sandbox Code Playgroud)

查看一下javadocs,了解您可以收听的事件掩码的完整列表.