JFrame 接近后台并听按键

2023-12-22

Working on a new personal project with jframe /questions/tagged/jframe. My goal is to close the frame in an ActionListener to the background, and when specific keys are pressed (Ctrl+Shft+L), I want to open the frame back up.

我不知道如何才能保持较低的 CPU 使用率。我知道我可以将框架可见性设置为false然后可能使用通用的 ActionListener 作为键,但是我有一些问题(和疑问)。

  1. 这是最好的方法吗?我正在努力保持 CPU 使用率尽可能低。

  2. 当框架不可见时,ActionListener 还能工作吗?

  3. 如何监听多个按键的声音?我有一个想法,但听起来行不通。


嗯,问题是java被设计成平台无关的。 为了实现这一点,用这种编程语言编写的程序必须有一些限制。 即使您的窗口/程序没有设置焦点,您也希望捕获击键。 事实上,您需要编写某种全局按键侦听器。 你不能在java中做这样的事情。事实上,你必须选择一种更面向机器的编程语言,比如 c/c++ 来实现你想要的。

在java中,这样的东西只能使用Java本机接口(简称JNI)。 使用 JNI,可以编写一个库来挂钩 c/c++ 等中的键事件,并使用 java 程序调用库的方法。

JNativeHook (https://github.com/kwhat/jnativehook https://github.com/kwhat/jnativehook)正在使用这种确切的方法。但是,我还没有尝试过这个框架,所以我无法判断它是否有效。

但我曾经使用过这个,它对我来说效果很好:http://softk.de/opensource/jglobalkeylistener.html http://softk.de/opensource/jglobalkeylistener.html

您可以直接下载源代码,即使该网站是用德语编写的,源代码是用英语记录的,甚至代码中的注释也是用英语的,也不要惊慌。

PS:如果这不起作用,它可能会帮助您搜索“java全局键盘记录器”之类的东西,因为这正是键盘记录器正在做的事情(显然它也记录了按键)而且我认为还会有更多的东西这可能对你有帮助。

问候,洛基

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JFrame 接近后台并听按键 的相关文章

随机推荐