Javaシステム全体のキーボードショートカット


Answers

私はJIntellitypeの著者であり、JIntellitypeのように、これをDLLでネイティブに実行し、Java JNIから呼び出さなければならないという事実を伝えることができます。 これは、JDKに実装されていないOSレベルのフックなので、JIntellitypeやjxGrabKeyなどのライブラリを使用する必要があります。 私が知る限り、誰もまだOSXのために書いた人は誰もいません。

JIntellitypeはGithubのオープンソースであるため、 ソースコードをチェックアウトするだけでどのように動作するかを知りたい場合は

Question

Javaアプリケーションでアクションを実行するためのシステム全体(グローバル)キーボードショートカットを取得する方法はありますか?

任意のAWT / Swingバインディング




JDIC(Java Desktop Integration)が役立つかもしれない
https://jdic.dev.java.net/

私には少し維持されていないようだ。 よく分かりません。
誰かがもっと知っているなら、報告してください!
私もこの機能に非常に興味があります。




更新:JVMの外側からイベントをフックできるかどうかわかりません。 Swing / AWTコンポーネントには、これが機能するための焦点が必要であると私は考えます。

Java AWT Event Queueをフックして、グローバル(jvmワイド)キー入力を確実に得ることができます。

つかいます

EventQueue ev = Toolkit.getSystemEventQueue();
// MyCustomEventQueue extends EventQueue and processes keyboard events in the dispatch
ev.push(new MyCustomEventQueue());

class MyEventQueue extends EventQueue
{
    protected void dispatchEvent(AWTEvent event)
    {
       // all AWTEvents can be indentified by type, KeyEvent, MouseEvent, etc
       // look for KeyEvents and match against you hotkeys / callbacks
    }
}

私は、アクションマップでグローバルキープレスを達成する他の方法があると思います。 私は実際に上記のメーターを使用しました