【问题标题】:How to control velocity of a key event如何控制关键事件的速度
【发布时间】:2015-01-20 19:30:05
【问题描述】:

我想通过我的箭头键控制一个参数,当我按下时,参数增加一,当我按下时,它应该减少,但它真正发生的是,当我按下向上箭头键时,关键事件是调用了很多次,根据按键按下的时间。只需快速单击即可使值增加 10 倍。我的目标是使每次点击只增加一次价值,或者至少减慢关键事件的速度。提前致谢!

这是我的代码:

frame.addKeyListener(new KeyListener() {
            public void keyPressed(KeyEvent e) {
                int keyCode = e.getKeyCode();
                switch (keyCode) {
                case KeyEvent.VK_UP:
                    currentParam++;
                    if(currentParam>=90)
                        currentParam = 45;
                    System.out.println(currentParam);
                }
            }

【问题讨论】:

    标签: java events keyboard


    【解决方案1】:

    您需要某种标志来表明该事件已被处理。一旦释放键,这应该被重置。

    一种常见的方法是使用一系列boolean 标志或一个Map 键控到每种类型的键或一个List,其中包含所有当前活动的键。

    您选择哪个取决于您的程序的其余部分。

    你真的应该避免使用KeyListeners,它们既麻烦又善变。更好的解决方案是使用key bindings API,看看How to use key bindings

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 2019-07-03
      • 2017-10-23
      • 1970-01-01
      • 2015-03-14
      相关资源
      最近更新 更多