发布
社区首页 >问答首页 >当我更改布尔值时,KeyListener未侦听

当我更改布尔值时,KeyListener未侦听
EN

Stack Overflow用户
提问于 2011-06-03 22:13:04
回答 1查看 458关注 0票数 1

好的,我正在做一个小的乒乓球游戏,我正在为它做一个开始菜单。这就像,你启动游戏,得到一个菜单,你点击播放,然后游戏开始,现在,一切都像我想要的那样工作,除了一件事。当我点击按钮时,所有的东西都被画出来了,球开始运行,所有的东西都正确地更新了,但是,我不能再移动我的球员了。就像KeyListener停止工作一样,我的程序突然停止了对按键的反应。我会给你们我所有的游戏源代码,因为,我很困惑,我不知道是什么导致了它,也不知道如何修复它。我的菜单的工作原理是,当你按下按钮时改变一个布尔值,当布尔值为false时,绘制开始菜单,当布尔值为true时,绘制游戏。好的,因为它有很多代码,我会把它上传到pastebin。

PongWindow.java(包括main) http://pastebin.com/S5CpWW5Q

PongDrawing.java(包括绘图、移动、按键监听、主游戏循环等等) http://pastebin.com/x2LxkkbP

PongPlayer.java(播放器) http://pastebin.com/N8VWTL0P

球(PongBall.java) http://pastebin.com/temGc2Yg

如果你们能弄明白为什么它不再听我的键了,请告诉我,我不知道。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-03 22:54:16

这就像是KeyListener停止工作了,

只将关键事件传递给具有焦点的组件。如果你点击一个按钮,那么你的游戏面板就不再有焦点了。你需要使用类似这样的东西:

代码语言:javascript
代码运行次数:0
复制
gamePanel.requestFocusInWindow();

在您的ActionListener代码中。

然而,正确的方法是忘记使用KeyListener,转而使用Key Bindings

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6228179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档