2011-10-29 26 views
3

この質問はまだ聞かれていないことを願っていますが、私の問題の解決策を探していました。キーボード上のキーの位置を取得

私はJavaアプリケーションを作成しています。ユーザーはキーボードでアプリケーションを制御できます。問題は、私は多くの異なる入力キーが必要だということです。だから私はまた、特別な文字キーを使用する必要があります。しかし、私の問題は、すべてのキーボードのすべてをもう一度コーディングすることができないということです。

私の質問は、キーボード上の特定のキーの場所を特定する方法があるということです。もし誰かがこれをやる方法を知っていれば、とても良いことになるでしょう。事前に

おかげで、 レオ

+0

あなたがすることはできません本当にキーがどこにあるかを知る* "物理的に" *。キーボードはキーコード(G_Hが指摘されている)だけを送信し、物理的なキーによって送信されたキーコードを変更する物理スイッチを持っています(例えば、 'caps-lock'を設定して 'left ctrl' **キーボードから直接**:あなたは単にこれをプログラムで検出することはできません)。言うまでもなく、いくつかのキーボードコントローラはそれよりもはるかにプログラマブルです。 – TacticalCoder

答えて

2

キーボードが唯一の基礎となるスタックにキーコードを送信します。これを使用する方法を理解するのは、OSとソフトウェアの責任です。おそらくハードウェアには場所に依存するシンプルなコードがあり、アプリケーションのキーコードに変換するための翻訳があります。レイアウトはOSから選択できるので、これが当てはまるはずです。しかし、これは、JNIを使​​用するのではなく、Javaでアクセスできる低レベルのもののようには見えません。

KeyListenerに由来して、KeyEventsをキャプチャできます。そのクラスのドキュメント、フィールド、メソッドを調べて、そのようなイベントをキャプチャし、さまざまなメソッドの結果を出力する小さなテストアプリケーションを作成することをお勧めします。たぶんあなたは共通点を見つけることができます。

これを行う簡単な方法がない場合は、QwertyやAzertyのような最も一般的なレイアウトの入力を標準化する何らかの変換テーブルスキームを用意するのが最善でしょう。それはほとんどのユーザーにとって、また絶対的な配置に頼りたいので、小さなレイアウトのセットの1つを要求することは受け入れられないように思われます。ユーザーはOSのレイアウトを変更できます。

ゲームを作成している場合は、some huge control deck that people will be forced to buy to get the best experienceを作成してください。余分なお金! :D

+0

ありがとうございます。ユーザーがすべてのキーを入力しなければならないウィンドウをアプリケーションが最初に開いたときにプロンプ​​トが表示され、このデータが保存されます。 – evotopid

1

あなたがデフォルトとしてAZERTYとQWERTY配列のための標準セットを持って、完全にユーザーは、ユーザーがアクションにそのマップキーを変更することができ、いくつかの設定を行うことができ

を定義された設定を行うことができます

関連する問題