我使用,我設置爲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