【发布时间】:2018-05-18 02:05:45
【问题描述】:
我在 JFrame 中有一个 JPanel,想为 Escapebutton 创建一个 KeyListener。我已经将 ActionListeners 用于 Buttons 和一个 MouseListener,它们都可以工作。我不知道为什么 KeyListener 不起作用。该面板中没有其他内容,因此该面板应该集中。我还尝试了 e.getKeyCode() 或 e.getKeyChar() 以及 Escape 以外的其他键的几种组合。
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();
}
【问题讨论】:
-
当您获得帮助时,不要忘记开始“接受”答案,方法是单击答案旁边的复选标记,以便人们知道问题已解决。查看您的其他帖子:stackoverflow.com/questions/47554346/… 和 stackoverflow.com/questions/47460521/…
-
我喜欢重复。
标签: java swing keylistener