KeyEvent マネージャーを機能させるために、いくつかの小さなコードを書きました。
ご覧のとおり、JFrame を作成し、Game クラスのオブジェクトである gameComponent を追加しました。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");
}
}
}