2016-08-08 9 views
2

私は小さな質問があります。しかし、コードから始めることができます:Javaキーを素早くクリック

私はキーボードを押さえていて、変数をすぐに印刷しています。いくつかの後にcountInteger.MAX_VALUEを得ます。

OUTPUT(キー上のスパムの後):

21 
22 
23 
24 
.. 
2147483647 

私の質問 - DOWNキーの速いクリックのことですか?私はこのナンセンスをどのように克服することができますか。手伝ってくれてありがとう。


Timerクラスを使用することが考えイム

を編集しました。


EDITED

は、このバグは矢印キーダウンだけのために表示されていることを気づい、すべてがキーアップのためによさそうです。

+0

あなたは 'onKeyUp'を使用できますか? –

+0

'onKeyUp'は上がる矢印のため、下に行く矢印のために' onKeyDown'を使う必要があります –

+0

どのフレームワークを使っていますか?それはGWTのように聞こえる。 –

答えて

0

あなたはコンテナに​​リスナーを追加したい場合、あなたはcount ++;が劇的Integer.MAX_VALUEを取得すると言うように、そのコンテナ上のあなた​​が、それは、高速でイベントを発生しますので、あなたがこの問題を回避する場合は、次のことができたときにThread.sleepをほぼ20msとして使用してください。そうすれば、うまくいくでしょう。

編集:

private boolean isDown; 
public void onKeyDown(Event event) { 
    isDown = true; 
    new Thread(new MyThread()).start(); 
} 

public void onKeyUp(Event event) { 
    isDown = false; 
} 

private class MyThread implements Runnable { 
    public void run() { 
     while (isDown) { 
      // do your work 
     } 
    } 
} 

それはあなたを助けることを願って!

+0

これは次のようになります:? 'protected void onKeyDown(NativeEvent e){ カウント++; Thread.sleep(20); System.out.println(count); } '@Bahramdun Adil –

+0

[link] https://groups.google.com/d/msg/google-web-toolkit/LnavJoe47No/n5iUzW-q8asJ、Timerでも試しました。役に立たない –

+0

@ J.Doeはいそのようなもの。 –

関連する問題