我对 Key Bindings 有点陌生,因为直到最近 KeyListeners 被证明是我最大的障碍时,我一直在使用 KeyListeners。我想知道您将如何使用 KeyBindings 编写类似 keyReleased 的事件。KeyListeners 提供了三种简单的方法:keyPressed、keyTyped 和 keyReleased,但我对如何使用 Key Bindings 实现这一点有点困惑。
基本上,当用户按下 UP 时,我希望一个对象向上移动。但是当用户松开 UP 时,物体应该会自动向下移动以模拟基本重力。这是我的一些代码,显示了 UpAction 类。
class UpAction extends AbstractAction
{
public void actionPerformed(ActionEvent tf)
{
north = true;
helitimer.start();
helitimer.start();
helitimer2.start();
repaint();
}
}
这三个 helitimer 是 Timer 对象,它们启动一系列 Timer 以连续平滑地增加对象的 y 位置。当调用 upAction 动作时,调用 UpAction 类并启动三个计时器以移动对象。
无论如何我可以做到,所以当用户释放 UP 时,不再调用该操作并且计时器停止?
非常感谢!