我剛寫了一些小代碼試圖讓我的KeyEvent管理器工作。KeyAdapter不起作用
正如你所看到的,我創建了一個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");
}
}
}
測試了你的代碼,它工作得很好。 –
也許按鈕被某物混淆或窗口不專心? – bcr
也許這可能是我的鍵盤有問題。我在Surface Pro上編寫了代碼,並附上了類型封面,在我的其他電腦上,這些代碼總是像魅力一樣工作。謝謝 – user2410644