2011-12-06 8 views
3

私はJavaでRobotクラスを何度も使用しました。実行を停止することは常に問題です(テスト中に何度も実行する必要があります)。私が欲しいのは、キー/キーの組み合わせをリッスンし、プログラムを停止するKeyListenerです。私の短い読書からは、フレームやそのようなものがなければ、キー・リスナーを組み込むことはできないようです。私にはフォーカスは最前線の窓を意味します。これは間違った定義ですか?これが正しい定義であれば、私は自分のロボットで這い回っているので、ウィンドウのフォーカスを保つことができません。どうすればこの問題を解決できますか?Javaロボットクラスを使用しています。プログラムの実行を停止する方法は?

これを入力している間に、プログラムでウィンドウをフォーカスし、キー押しをテストし、プログラムでフォーカスを外して継続するという理想的でない解決策を思いつきました。これは可能ですか?より良い方法がありますか?

答えて

2

グローバルキーリスナーは、どのアプリケーションにフォーカスがあってもキーをリッスンしますか?これはRobot/pure Javaではできません。

ただし、Windowsで実行している場合はJNAでこれを行うことができます。 JNAのKeyHook exampleは良い出発点です。

1

さて、私はJavaのロボットにはあまり慣れていませんが、KeyListenerの問題はInput/Action Maps(Guide here)で解くことができます。

また、キー押下のテストではなく、確認メッセージ(「ロボットの継続?Y/N」)を使用してJOptionPaneを使用することもできます。しかし、まだ最高の解決策ではありません。

関連する問題