【发布时间】:2011-12-25 20:03:39
【问题描述】:
我在 java 中的框架上附加了一个 keylistener,当我按下任何键时,我可以检测到按键,但是发生了一件奇怪的事情。我的游戏是扫雷游戏,我有一个重新启动按钮,基本上可以清除棋盘并重新设置。奇怪的是,当我用鼠标单击按钮时,一切都清除得很好,并且板被重新设置,但键盘监听器停止工作。更奇怪的是,我有一个 jmenuitem,它基本上可以自动点击按钮。所以它就像restartbutton.doclick()
如果我单击 jmenuitem 重新启动它会重新启动很好清除所有内容并且 keylistener 仍然起作用。我什至可以看到被点击的按钮。任何想法为什么会发生这种情况?
谢谢
这是附在我的主框架上的。这是单击按钮后停止工作的侦听器。
frame.addKeyListener(new KeyListener(){
public void keyReleased(KeyEvent e){
}
public void keyPressed(KeyEvent e){
System.out.println("hey");
int keycode = e.getKeyCode();
if(e.isControlDown() & keycode==KeyEvent.VK_C){
balh blah balh
}
}
public void keyTyped(KeyEvent e){
}
});
【问题讨论】:
-
如何添加动作监听器?你能发布一些代码吗?听起来您的重置方法正在重置附加了动作侦听器的项目,但很难说。
-
不,是专注,纯粹而简单。
-
框架在工作时没有焦点,所以我不明白它是如何成为焦点的。
-
@user541597:请参阅 KeyListener 教程和 API。在那里你会看到它必须是一个焦点问题。您收听的容器必须具有焦点,否则关键侦听器将不起作用。期间。
标签: java swing keylistener