2

i m using the keyboard event on Robot Objects....

but each time i have to specify the keys individually....like

Robot r=new Robot();
r.KeyPress(KeyEvent.VK_A);
r.KeyPress(KeyEvent.VK_B);
r.KeyPress(KeyEvent.VK_C);
r.KeyPress(KeyEvent.VK_D);

is there any technique to get/recognize eachand every keys....not by specifying them individually....? i m recieving the keycode from server side in keyCode variable.... so can i use this variable directly inplace of "KeyEvent.VK_D" like r.keyPress(keyCode);

4

3 に答える 3

1

キー識別子は単なるInt値です。サーバー値がJava値と一致する場合は、値を直接入力します。一致しない場合は、サーバー値がJavaキー値を参照するマップを作成する必要があります。

C++QtキーイベントとJavaキーイベントの間の会話中に同じ問題が発生しました。値も一致しません。このためのマッピングを作成する必要がありました。

KeyEventクラスを見てください。すべてのキーは、int値でリストされます。サーバーから取得した値がこのint値と一致するかどうかを確認する必要があります。サーバーの値が一致しない場合は、マップを作成する必要があります。マップキーはサーバー値であり、マップ値は押されたキーに対応するKeyEvent値です。

値が一致する場合、マップを作成する必要はありません。Robotコマンドのサーバー値を直接使用できます。

于 2009-06-18T09:23:12.373 に答える
0

ええと...はい?KeyEvent.VK_Dの定数は、便宜上存在するだけです。同じキーに同じ値が使用されている限り、他の場所からの数値を使用してもまったく問題はありません。

于 2009-06-18T09:23:55.477 に答える
0

私があなたの質問を正しく理解しているなら、あなたはいずれかのキーが押されるたびにこのアクションを実行させようとしています。私はあなたの質問を正しく読んでいるとは思えませんが、これに対する解決策はKeyEvent.KEY_PRESSEDを使用することであり、アクションが必要な場合、またはキーが解放されたときに変数を設定する場合は、KeyEvent.KEY_RELEASEDになります。しかし、私は少し混乱しています。すべてのキーが押されたときに同じアクションが本当に発生するようにしたいですか、それとも一連のキーに固有のイベントが必要ですか?

于 2009-06-20T07:16:55.957 に答える