我正在使用
我想知道是否有好的方法可以让动作在按下键时就一直发生,而不是在按住3-4秒钟后才开始发生。
我考虑了下一个解决方案,但也许已经有实现的方法了:
KeyAdapter
获取事件和方法addKeyListener
,它正常工作。问题是,当我按下键时,动作只发生一次,而不是在按下键的同时发生动作。只有在按住键3-4秒钟后,动作才会一直发生,这正是我想要的。我想知道是否有好的方法可以让动作在按下键时就一直发生,而不是在按住3-4秒钟后才开始发生。
我考虑了下一个解决方案,但也许已经有实现的方法了:
public abstract class MyKeyAdapter extends KeyAdapter{
private boolean isPressed = false;
private int pressedKey = 0;
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while(isPressed)
keyPressedAction(pressedKey);
}
});
@Override
public void keyPressed(KeyEvent e) {
if(!isPressed){
pressedKey = e.getKeyCode();
t.start();
}
}
@Override
public void keyReleased(KeyEvent e) {
if(isPressed && e.getKeyCode()==pressedKey)}
isPressed = false;
}
public abstract void keyPressedAction(int key);
}