私はJFrameにJPanelを持っており、エスケープボタン用のKeyListenerを作成したいと考えています。私は既にButtonとMouseListenerにActionListenersを使用しています。 KeyListenerが機能しない理由はわかりません。そのパネルには他に何もないので、Panelに焦点を当てるべきです。私はe.getKeyCode()またはe.getKeyChar()とEscape以外のキーのいくつかの組み合わせも試みました。JPanelでエスケープするためのKeyListener
public GamePanel(GameState gameState, Window window) {
game = gameState;
myWindow = window;
renderer = new Renderer();
setFocusable(true);
addMouseListener(this);
addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ESCAPE) {
System.out.println("escape");
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
});
add(renderer);
setLayout(null);
setBackground(Color.CYAN);
setPreferredSize(new Dimension(8000, 600));
timer = new Timer(20, this);
timer.start();
}
問題が解決されたことを人々が知るように、回答の横にあるチェックマークをクリックすると、回答を受け入れることを忘れないでください。他の投稿を参照してください:https://stackoverflow.com/questions/47554346/using-jbutton-in-one-class-to-change-card-in-another-class-using-cardlayout and https://stackoverflow.com/questions/47460521/how-to-make-jpanel-in-jframe-visible – camickr
私は重複が好きです。 –