Java Key Down快速点击

时间:2016-08-08 09:32:31

标签: java gwt key

我有一个小问题。但是让我们从代码开始:

@Override
protected void onKeyDown(NativeEvent e) {
  count ++;
  System.out.println(count);
}

因此,当您看到我按住键盘上的键并立即打印变量时。一段时间count获得Integer.MAX_VALUE

OUTPUT(在密钥上发送垃圾邮件后):

21
22
23
24
..
2147483647

我的问题 - 是快速点击DOWN键吗?以及如何克服这种废话。谢谢你的帮助。

EDITED

我想使用Timer类。

EDITED

注意到这个错误只出现在向下箭头键中,所有内容看起来都很合适。

1 个答案:

答案 0 :(得分:0)

如果要向容器添加keydown侦听器,那么当您在该容器上keydown时,它将以高速触发事件,正如您所说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
        }
    }
}

希望它可以帮到你!