如何添加键盘快捷键以从任务栏或快速启动最大化 Java 应用程序?
How to add keyboard shortcut to maximize a Java application from taskbar or quick launch?
我有一个 Java 应用程序。我想为此添加一个功能,当应用程序最小化时,我按键盘上的某个键,应用程序最大化。如何通过 Java 代码实现此功能?
How can I implement this feature through Java code?
你不能。当应用程序运行时,它需要本机代码来拦截键盘事件。没有焦点。
需要 Java GUI 实现的本机代码或 hacking/misuse。
在具有 XWindows 显示的 Linux(或其他 Unix/Unix-like 系统)中,您需要从根 window 和所有子项和处理那些事件。您可以打开您自己的到 X 显示服务器的连接,只是为了从根 window.
接收键盘事件
请参阅 "xev" 的源代码,了解在现有 window(例如根 window)上注册侦听器的示例。您需要修改它以仅捕获键盘事件。不过,我不记得如何从所有 windows 中获取按键事件。您要么必须在根 windows 上设置侦听器属性以侦听所有子项的关键事件(如果可能),要么遍历所有 windows 并将您的事件侦听器属性添加到每个 window 同时还注册了所有 window 创建事件,这样您就可以在每个新创建的 window 上设置您的侦听器属性。有关如何迭代所有 windows.
的示例,请参阅 "xdpyinfo" 的源代码
您必须 运行 一个单独的线程到 运行 您的 XEvent 侦听器,然后当您检测到键盘事件时,将事件发送回您的 Java 应用以最大化你的应用程序。因此,您需要知道 window ID 才能将该事件发送到。
有点乏味,但不难做到。
而且我怀疑 hack/misuse Java 显示 类 可以从 Java 做同样的事情,但你只能靠自己了。
至于基于Windows的系统?我没有为这些编写 GUI 的经验,所以我无能为力。
我有一个 Java 应用程序。我想为此添加一个功能,当应用程序最小化时,我按键盘上的某个键,应用程序最大化。如何通过 Java 代码实现此功能?
How can I implement this feature through Java code?
你不能。当应用程序运行时,它需要本机代码来拦截键盘事件。没有焦点。
需要 Java GUI 实现的本机代码或 hacking/misuse。
在具有 XWindows 显示的 Linux(或其他 Unix/Unix-like 系统)中,您需要从根 window 和所有子项和处理那些事件。您可以打开您自己的到 X 显示服务器的连接,只是为了从根 window.
接收键盘事件请参阅 "xev" 的源代码,了解在现有 window(例如根 window)上注册侦听器的示例。您需要修改它以仅捕获键盘事件。不过,我不记得如何从所有 windows 中获取按键事件。您要么必须在根 windows 上设置侦听器属性以侦听所有子项的关键事件(如果可能),要么遍历所有 windows 并将您的事件侦听器属性添加到每个 window 同时还注册了所有 window 创建事件,这样您就可以在每个新创建的 window 上设置您的侦听器属性。有关如何迭代所有 windows.
的示例,请参阅 "xdpyinfo" 的源代码您必须 运行 一个单独的线程到 运行 您的 XEvent 侦听器,然后当您检测到键盘事件时,将事件发送回您的 Java 应用以最大化你的应用程序。因此,您需要知道 window ID 才能将该事件发送到。
有点乏味,但不难做到。
而且我怀疑 hack/misuse Java 显示 类 可以从 Java 做同样的事情,但你只能靠自己了。
至于基于Windows的系统?我没有为这些编写 GUI 的经验,所以我无能为力。