java - 用户发起事件的最后时间

标签 java swing

我有一个正在维护的相当大的 swing 应用程序,我必须添加一个超时功能,基本上如果用户在一定时间内没有与应用程序交互,应用程序应该采取特定的操作(例如关机)。

由于此应用程序已经编写完成,因此让每个鼠标监听器/键盘监听器/任何类型的输入监听器扩展/实现一个特定的类/接口(interface)将是一项无法克服的任务,该类/接口(interface)将存储最后一次用户-发起的事件发生了。

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);

关于java - 用户发起事件的最后时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890959/

相关文章:

java - buildr:将依赖包打包到一个 jar 中

Java 文本文件编码

java - 什么时候需要在 swing 组件上调用 revalidate() 以使其刷新,什么时候不需要?

Java JTabbedPane 立即切换选项卡

java - 如何修复 JTextField 上的按键监听器?

java - 无法替换批处理文件中的参数值 - PostBuildScript 插件 Jenkins

java - jUnit的@BeforeClass被多次调用

java - 如何使用designgridlayout在页面中的两类数据之间插入垂直JSeperator?

java - bean 和 Jackson 库的问题

java - 限制 PLAIN_MESSAGE JOptionPane 中输入文本的大小