2011-09-24 13 views
7

テキストボックスに入力してキーを押したとき、最初のキー押下の遅延に応じて(a ....... aaaaaaaaaaaaaaa)が表示されます。最初のキー押下遅延を削除する

addKeyListener(new KeyAdapter() { 
    public void keyPressed(KeyEvent e) { 
     // Handle key press here 
    } 

私はユーザーの反射が非常に重要なゲームを作成しています。この遅延を完全になくすにはどうすればよいですか?上記のコードは動作しません。私も運がないprocessKeyEventをオーバーライドしようとしました。

答えて

2

これらのイベントはJVM /オペレーティングシステムによって生成されます。ユーザーにキー遅延/キーリピート設定を変更するよう指示しない限り、もう少し作業が必要になるでしょう。

正しいレートでイベントを発生させるタイマーを作成し、タイマーを起動してから開始すると、keyPressed/keyReleasedになることをお勧めします。

+0

もっと簡単な方法はありますか? – David

+0

@David:そうは思わない - 私はaioobeが正しいと思います。それはOSベースのものなので、回避策はあまりありません。 – Nightfirecat

+1

このアプローチは、複数のkeyPressedイベント(キーが押されているとき)とkeyReleasedイベントが1つだけ(キーが離されたとき)生成するので、Windows上でのみ機能することに注意してください。しかし、私は、他のOSがtimerを使う目的を打ち破る繰り返しレートの頻度でkeyPressed/keyReleasedイベントのペアを生成すると信じています。私はこの問題のために良いプラットフォームに依存しないソリューションを見ていません。 – camickr

関連する問題