【发布时间】:2014-11-30 00:49:37
【问题描述】:
为了学校,我必须制作一个基于 Breakout 的小游戏。
我得到了我的 JFrame:
game.setFocusable(true);
setContentpane(game);
在我的游戏中,我添加了一个输入处理程序,它扩展了 Keylistener 并实现了 JPanel。
setFocusable(true);
Inputhandler input = new Inputhandler();
addKeylistener(input);
它似乎不起作用,我已经编写了很多测试,但我看不到让输入句柄捕获任何 keyPressed。
当我将 JFrame 更改为:
add(game);
它的工作原理就像它应该工作一样,但是我这样做时遇到的问题是以正确的方式绘制我的面板。我有点卡在这个问题上,所以请有人帮助我。
我现在到达的点:
public Game(){
setFocusable(true);
requestFocus();
requestFocusInWindow();
getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "pressed");
getActionMap().put("pressed", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Space is pressed");
}
});
this.inputHandler = new InputHandler();
addKeyListener(this.inputHandler);
setPreferredSize(new Dimension(500,500));
}
【问题讨论】:
标签: java swing keylistener