Java 设置按钮事件后的焦点

Java 设置按钮事件后的焦点,java,swing,focus,jbutton,keyboard-events,Java,Swing,Focus,Jbutton,Keyboard Events,好的,我有一个按钮来重新开始我的游戏 private static class Clicked implements ActionListener { @Override public void actionPerformed(ActionEvent event) { hero.setHealth(100); cl.show(cards, sGame); } } 按下按钮后,键盘侦听器无法工作。我查了一下,窗户似乎失去了焦点。我已经设置

好的,我有一个按钮来重新开始我的游戏

private static class Clicked implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent event) {
        hero.setHealth(100);
        cl.show(cards, sGame);
    }
}
按下按钮后,键盘侦听器无法工作。我查了一下,窗户似乎失去了焦点。我已经设置了可聚焦,并在游戏面板中添加了keylistener:

addKeyListener(new Keys());
setFocusable(true);
setDoubleBuffered(true);

我是在按钮事件后做些什么还是做些什么?

窗口没有失去焦点,按钮正在获得焦点,并用
KeyListener将其从组件中移除

在您的调查中,您还应该发现
KeyListener
仅在组件可聚焦且具有焦点时才会响应关键事件。这是
KeyListener
的已知限制

此外,在您的调查中,您应该已经发现,通常建议将其作为解决此问题的方法