执行上一个命令时阻止Java Keylistener

时间:2014-04-28 13:25:36

标签: java keylistener

我在Java中实现了一个Keylistener,它基本上可以工作,但是如果我按下一个键,似乎所有的KeyEvent都被“堆叠”并一个接一个地执行。通常,我想要这种行为,但由于调用Key事件的方法需要一些计算时间,我想“阻止”Keylistener接受事件,同时已经执行了从前一个KeyEvent调用的方法。 我已经尝试在KeyListener中设置一个bool标志,但是它没有用,因为看起来Keylisteners方法在完全执行前一个KeyEvent之后被调用。 任何想法如何实现这一目标?谢谢!

编辑:以下是我尝试不成功的代码段:

@Override
public void keyPressed(KeyEvent e) {
    frame.removeMouseListener(this);
    switch (e.getKeyCode())
    {
    case KeyEvent.VK_RIGHT:
    case KeyEvent.VK_DOWN:
    case KeyEvent.VK_PAGE_DOWN:  frame.myMethod(); break;

    case KeyEvent.VK_MINUS:
    case KeyEvent.VK_SUBTRACT: frame.myOtherMethod(); break;
    }
    frame.addMouseListener(this);
}

1 个答案:

答案 0 :(得分:0)

  

任何想法如何实现这一目标?

在KeyListener中:

  1. 从组件中删除KeyListener
  2. 进行处理
  3. 将KeyListener添加回组件