Java,获取按键的时间长度,currentTimeMillies()始终为24
我正在为一个机器人编写一个代码,当它被击中时,它会回到原来的位置。为此,我记录了按键的时间量Java,获取按键的时间长度,currentTimeMillies()始终为24,java,time,keylistener,Java,Time,Keylistener,我正在为一个机器人编写一个代码,当它被击中时,它会回到原来的位置。为此,我记录了按键的时间量 switch (key) { case KeyEvent.VK_UP: // System.out.println("UP pressed"); // state = ""; pressCount += 1; xTimeStart
switch (key) {
case KeyEvent.VK_UP:
// System.out.println("UP pressed");
// state = "";
pressCount += 1;
xTimeStart = System.currentTimeMillis();
myFinch.setWheelVelocities(255, 255);
myFinch.setLED(0, 0, 255);
// tempDistance = 1;
break;
}
也就是说,当按键按下时,xTimeStart会记录第一次按下按钮的时间
switch (key) {
case KeyEvent.VK_UP:
// System.out.println("UP released");
xTimeEnd = System.currentTimeMillis();
System.out.println(xTimeEnd-xTimeStart);
pressCount = 0;
// tempDistance = 1;
break;
}
如您所见,我检索按钮释放的时间并打印出两者之间的差异。如果不除以1000或转换为秒,结果总是在23-25之间的24左右
非常感谢您的帮助,提前感谢:D.为什么不使用像Guava's Stopwatch这样的实用程序类?为了获得更高的精度,您应该以代码为基础。即使使用秒表/纳米时间,分辨率也受到事件侦听器的限制,而事件侦听器受操作系统UI消息泵的限制。您可以得到更精确的值,但不能得到更精确的值。代码的两部分,大小写值都是KeyEvent.VK_UP?是的。一个用于按下向上按钮时,另一个用于松开按钮时