【问题标题】:how to accept keyboard shortcuts when jframe is not in focus?当jframe不在焦点时如何接受键盘快捷键?
【发布时间】:2014-05-30 05:41:29
【问题描述】:

我使用 java 制作了一个应用程序,它在指定的文件夹中获取并存储屏幕截图。我将快捷键 ctrl+K 设置为截取并保存屏幕截图,当按下 jframe 的最小化按钮时,我设法使我的应用程序最小化到系统托盘,但问题是分配的键盘快捷键在 jframe 时不起作用最小化或被其他应用程序置于后台,即使 JFrame 不在焦点上,是否可以使 d 应用程序工作?请帮忙!谢谢! (我只为windows制作应用程序)

【问题讨论】:

  • Windows 不会将您的 Ctrl-K 发送到任何最小化的窗口。因此,您在 Java 中所做的一切都无法满足您的需求。
  • 关于唯一的解决方案是使用 JNI/JNA 库来监控在操作系统级别生成的全局击键
  • @MadProgrammer 你能给我任何关于如何使用你提到的 JNI/JNA 库的例子的链接。请。
  • 我想知道为什么我的问题是-1???我在 stackoverflow 上找不到任何此类先前的问题。
  • 您可能永远不会知道谁对它投了反对票或为什么。你对此无能为力,但我不明白它为什么重要。你得到了你想要的答案。

标签: java swing jframe desktop-application


【解决方案1】:

对于这样的事情,我会使用 JNativeHook 之类的第 3 方库(我经常使用它)你可以使用 Global listener nativehook

这里有一些示例如何使用它examples

【讨论】:

  • 感谢您的回答,我想它会起作用,但我想问一个问题,显示的示例涉及使用单个键作为快捷方式,而我想要 ctrl+k,可以实现吗使用这个库?
  • 当然,这几乎和你在摇摆中的做法一样。
  • 非常感谢!! :) 你帮了大忙 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多