Java 密钥输入不起作用



我正在编写一个简单的java蛇形游戏,甚至在我真正制作游戏之前就遇到了问题。由于某种原因,我似乎无法从键盘上获得输入。我当前的代码是:

public class GameWindow extends JFrame{    

private SnakeCanvas snakeCanvas;

public GameWindow(StartWindow sw) {
    getContentPane().addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            JOptionPane.showMessageDialog(null, "Key Pressed!");
        }
    });

    getContentPane().setBackground(Color.BLACK);
    this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    this.setUndecorated(true);
    this.setVisible(true);
    getContentPane().setLayout(null);
    snakeCanvas = new SnakeCanvas();
    snakeCanvas.setBounds(78, 72, 290, 195);
    getContentPane().add(snakeCanvas);
    snakeCanvas.setVisible(true);
    snakeCanvas.repaint();
}

}

(SnakeCanvas扩展了JPanel,上面没有其他组件)

我也尝试过在snakeCanvas中添加一个关键侦听器,但仍然没有效果。。我也尝试过使用可聚焦和聚焦Traversal的东西,但这也没有起到任何作用。。。有人能向我解释一下我做错了什么吗?

确保您已经设置了要接收键盘事件的组件是可聚焦的(setFocusable)&具有焦点(requestFocus

  1. KeyListener不是Swing JComponents的合适监听器,需要在窗口中关注

  2. 集装箱必须使用setFocusable

  3. 正确的方法是使用KeyBindings,例如

相关内容

  • 没有找到相关文章

最新更新