【问题标题】:key listener with acm.graphicsacm.graphics 的关键监听器
【发布时间】:2019-09-06 21:51:00
【问题描述】:

this question有些相关。

我有一个内置在ACM Graphics Library 中的游戏。我希望能够在按下 P 键 时暂停游戏。但是,我查看了文档,似乎简要提到了关键侦听器,但没有在这种情况下使用它们的实际示例(除非我遗漏了什么)。

我不想使用 控制台或对话框,因为我不想通过键盘输入数据,我只想能够打开和关闭我的暂停方法我的主游戏循环中的 P 键。这可能吗?

【问题讨论】:

  • 为什么 KeyListener 与任何 ACM 图形有任何不同?您是否搜索过无数的 KeyListener 参考资料???

标签: java keyboard keyboard-events keylistener acm.graphics


【解决方案1】:

您需要一个继承 ACM 的 Program 的类来添加关键侦听器。其次,您需要一个实现KeyListener 的类(这可能是同一个类),然后在KeyListener#keyPressed 中编写代码。您可以通过KeyEvent.getKeyCode 获取按下的键的代码并检查它是否等于您想要的键(在本例中为 P 键)。

以下示例说明了它是如何工作的。它没有测试它,但它应该可以解决问题。

public class KeyListenerExample extends GraphicsProgram {

    @Override
    public void run() {
        addKeyListeners(new MyKeyListener());
    }

    private class MyKeyListener implements KeyListener {

        @Override
        public void keyPressed(KeyEvent e) {
            int keyCode = e.getKeyCode();
            if (keyCode == KeyEvent.VK_P) {
                System.out.println("Key 'P' has been pressed!");
            }
        }

        @Override
        public void keyReleased(KeyEvent e) { /* Empty body */ }

        @Override
        public void keyTyped(KeyEvent e) { /* Empty body */ }

    }
}

如果您可以为您的问题(尤其是其他问题)提供Minimal, Complete, and Verifiable example,将会很有帮助。

【讨论】:

    猜你喜欢
    • 2012-04-29
    • 2012-08-08
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 2013-10-13
    • 2011-02-21
    • 2019-04-01
    相关资源
    最近更新 更多