专注于java applet

发布于 2024-10-03 16:03:19 字数 227 浏览 2 评论 0原文

我制作了一个完全基于JPanel的java游戏。当我将它添加到 JFrame 时,它​​工作得很好,当我将它添加到 JApplet 并使用 eclipse 内置的 applet 测试器测试它时,它工作得很好。但是,当我尝试通过 html 站点运行小程序时,它不起作用。它会加载,但不需要键盘输入。我已将其设置为“按 s”开始游戏,但即使我单击游戏并按 s,也没有任何反应。

我是否必须设置键盘焦点,因为我认为这是自动完成的。

I made a java game that is all based on JPanel. When I add it to a JFrame it works perfectly, and when I add it to a JApplet and test it with the built in applet tester of eclipse it works perfectly. However, when I try to run the applet through an html site it doesn't work. It loads, but it doesn't take keyboard input. I have it set up where "pressing s" starts the game, but even when I click on the game and press s, nothing happens.

Do I have to set the keyboard focus, because I thought that was done automatically.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妞丶爷亲个 2024-10-10 16:03:19

但它不需要键盘输入。

KeyEvent 仅传递给具有焦点的组件。我猜你的面板没有焦点,所以请确保面板可聚焦,然后在 GUI 可见后使用 requestFocusInWindow() 方法以确保面板具有焦点。

然而,更好的解决方案不是依赖 KeyListener,而是使用 Key Bindings。 Swing 被设计为使用键绑定。

详细了解按键绑定

but it doesn't take keyboard input.

KeyEvents are only passed to the component that has focus. I would guess your panel doesn't have focus, so make sure you make the panel focusable and then use the requestFocusInWindow() method once the GUI is visible to make sure the panel has focus.

However, the better solution to the problem is not to rely on the KeyListener but instead to use Key Bindings. Swing was designed to use Key Bindings.

Read more about Key Bindings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文