【问题标题】:Temporarily disable key input java暂时禁用键输入java
【发布时间】:2013-03-28 12:36:39
【问题描述】:

我目前正在开发一个基本游戏,它使用带有 JProgressBars 的计时器来为角色统计数据添加填充效果。我遇到的一个问题是,如果在填充进度条之前选择了另一个字符,它会导致图形重叠并且看起来非常错误。计时器通过自定义操作类连接到 JButton,并且可以通过键导航按钮。我想要做的是在动作开始时禁用键输入,并在最长计时器结束时重新启用键。如果代码有帮助,请询问,我将上传文件。非常感谢任何和所有帮助。

【问题讨论】:

  • 我知道我没有提供帮助,但 Swing 不是为游戏而设计的。
  • Swing 仅用于菜单。

标签: java user-interface keyboard


【解决方案1】:

没有看到任何代码很难找到任何修复。但是,如果您的计时器是线程,那么线程组可能会很有用。这个怎么样:

public class MyWindow {
    Integer numTimersRunning = 0;
    ...
    {
            // timer started here
            numTimersRunning++;
            //timer does its thing and makes the progress bars go up.
            ...
            //timer finishes
            numTimersRunning--;
    }

    void keyPressed(MouseEvent e) {
     if(numTimersRunning > 0) 
              return;
     // do your keyboard input processing....
    }
}

我不知道只是在黑暗中开枪,祝你好运。

ps:听起来您可能遇到了一些双重缓冲问题。查看http://docs.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html

【讨论】:

  • 这正是我所需要的。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 2018-11-12
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 2021-08-13
相关资源
最近更新 更多