我有一个小问题。但是让我们从代码开始:
@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
注意到这个错误只出现在向下箭头键中,所有内容看起来都很合适。
答案 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
}
}
}
希望它可以帮到你!