1

キーボードのキー 0 ~ 9 (実際の数字) を入力する必要がある Java ロボット クラスを実行していますが、テンキーの数字は入力しません。なんらかの理由で、私が使用している Java アプレット (私が作成したものではありません) は、テンキーからの 0-9 キーを受け入れず、標準キーボードの上の 0-9 行のみを受け入れます。ただし、Java ロボット クラスには VK_NUMPAD# KeyEvent しかないようです。最初に、VK_1 イベントを試してみましたが、それは数字 (むしろ、最初の 0 から 9 の ASCII 文字) とは何の関係もないことがわかりました。数字の一番上の行を取得する方法はありますか? 私が使用しているロボットはそれ以外は問題なく動作し、「VK_P」や「VK_UP」などのキーを喜んで入力します。ありがとう!

4

1 に答える 1

0

これは、キー コードの決定的なリンクである必要があります。を使用するe.getKeyCode()と、VK_NUMPAD のコードはそれぞれ 0 ~ 9 の数字に対して 96 ~ 105 であることがわかります。これは、num_lock がオフの場合に他のコードを取得するため、オンの場合にのみ当てはまります。

VK_1 での試みは正しかったはずです。それは、一番上の行の 1 が押されたことに対応するコード 49 です。持っていたアプレットで試してみました。私は KeyListener で立ち往生し、これが正しいことを確認しました。48-57 は、VK_0 ... VK_9 として指定したリンクにリストされている一番上の行の 0-9 に対応します。私が言ったように、VK_1はキーボードの上部にある1文字の正解であるため、何らかのオーバーライド(num_lockキーが数字パッドをオーバーライドするなど)が必要です。

于 2014-01-10T19:06:56.363 に答える