我刚刚写了一些小代码,试图让我的 KeyEvent 管理器工作。
如您所见,我创建了一个 JFrame 并添加了 gameComponent,它是 Game 类的一个对象。我将 JPanel 设置为可聚焦并请求焦点。然后将一个名为 TAdapter 的 KeyAdapter 设置为 KeyAdapter。您可以在其扩展 KeyAdapter 和方法 keyPressed() 的代码中看到该类。
我告诉程序在按下键时将“按下”打印到我的控制台,但没有任何反应。
我无法弄清楚我做错了什么,也许有人看到了一些我自己看不到的错误?
任何帮助表示赞赏
提前致谢
public class Game extends JPanel {
public static final int WIDTH = 320;
public static final int HEIGHT = 240;
public static final int SCALE = 3;
public Game() {
addKeyListener(new TAdapter());
setFocusable(true);
requestFocus();
}
public static void main(String[] args) {
Game gameComponent = new Game();
Dimension size = new Dimension(WIDTH*SCALE, HEIGHT*SCALE);
JFrame frame = new JFrame("Invaders");
frame.setVisible(true);
frame.setSize(size);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.add(gameComponent);
}
public class TAdapter extends KeyAdapter {
public void keyPressed(KeyEvent e) {
System.out.println("Pressed");
}
}
}