java - Java 小程序的焦点

标签 java applet jframe jpanel

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

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

最佳答案

but it doesn't take keyboard input.

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

但是,解决该问题的更好方法是不依赖 KeyListener,而是使用 Key Bindings。 Swing 被设计为使用键绑定(bind)。

阅读更多关于 Key Bindings 的信息.

关于java - Java 小程序的焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241489/

相关文章:

java - 在 Java 中播放 wav 时遇到问题

java - 在Java中连续移动图像

java - 如何从类中绘制形状到小程序?

java - 如何在不关闭套接字的情况下通过套接字发送图像?

Java 将应用程序 move 到启动文件夹

java - 从单独的线程内更新标签

java - 加载图像并在加载完成后进行设置

java - 小程序总是给出警告对话框

Java:组件中的 setPreferredSize() 和 setSize() 方法之间的区别

java - JFrame多屏