【发布时间】:2016-08-10 23:27:44
【问题描述】:
我试过了,但是没有用。
我必须在按键时运行动画。
我的代码:
case KeyEvent.VK_RIGHT:
while(KeyEvent.KEY_PRESSED){
estado = ANDA0;
posX += 10;
}
estado = PARADO;
break;
【问题讨论】:
-
使用
KEY_RELEASED事件
标签: java
我试过了,但是没有用。
我必须在按键时运行动画。
case KeyEvent.VK_RIGHT:
while(KeyEvent.KEY_PRESSED){
estado = ANDA0;
posX += 10;
}
estado = PARADO;
break;
【问题讨论】:
KEY_RELEASED事件
标签: java
您的 while 循环将完全压倒 GUI 事件线程,阻止任何动作发生,包括动画动作和键读取事件。相反,我建议您:
while (true) 循环。【讨论】:
像这样使用KEY_RELEASED 事件应该可以解决问题:
case KeyEvent.VK_RIGHT:
if (KeyEvent.getID() == KeyEvent.KEY_PRESSED)
bool = true;
while(bool){
estado = ANDA0;
posX += 10;
if (KeyEvent.getID() == KeyEvent.KEY_RELEASED)
bool = false;
}
estado = PARADO;
break;
【讨论】:
switch-case,所以该键已被按下。
KEY_RELEASED 事件之前发布。这意味着您正在等待新的活动。