我使用,我设置为FullScreenWindow,像这样的代码一个JFrame对象上的KeyListener:摇摆键盘没有响应
class Game{
private GraphicsDevice device;
...
public void run(){
JFrame frame = new JFrame();
frame.addKeyListener(new MarioKeyListener());
device.setFullScreenWindow(frame);
}
...
}
如果我只是在我的主要方法创建一个游戏对象,它工作正常并调用run()。 但是我想在MouseAdapter的mousePressed()函数内部执行此操作,该函数添加到另一个JFrame的MenuItem中。结果是程序正常运行,但不接受任何键盘输入。
JMenu gamemenu = new JMenu("Game");
JMenuItem newGame = new JMenuItem("New Game");
newGame.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e){
Game g = new Game();
g.run();
}
});
gamemenu.add(newGame);
我觉得我的框架对象是没有焦点,但调用setFocusable(真)和requestfocusinwindow()没有帮助。 如果有人知道什么是错或如何解决这个问题,帮助将不胜感激...
托米
您通常应该避免使用KeyListeners,而是使用Key Bindings。 Swing教程将告诉你如何使用这些,并会告诉你为什么他们更好。 – 2012-01-13 23:29:37
是的,我在这个网站上看过很多次,这就是我如果找不到更快的解决方案要做的事情。 – Tomi 2012-01-13 23:44:15
无论如何,感谢您的回复 – Tomi 2012-01-13 23:44:31