java - 禁用 JButtons 从键盘读取事件

标签 java swing jpanel jbutton keyboard-events

我有两个 JPanel。在第一个中,我有 3 个 JButtons,第二个是根据从键盘读取的事件绘制图像。如果我使用 setEnabled(false); 设置 JButtons,我可以按预期使用键盘事件(如果我按下向上箭头,图像会向上移动),但是当启用按钮时,图像没有任何反应.甚至,如果我按下空格键,它的行为就像我单击按钮一样。

最佳答案

问题不在于 JButton,而可能是因为您使用了 KeyListener。如果可以避免,请不要将 KeyListeners 与 Swing GUI 一起使用,而是使用键绑定(bind)。 KeyListeners 仅在被监听的组件具有焦点时才工作,并且当您有 JButtons 时,它们将占据焦点并阻止您的 KeyListener 工作。键绑定(bind),如果做得好,可以避免这个问题。

例如,请看我的代码示例here .

关于java - 禁用 JButtons 从键盘读取事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11945221/

相关文章:

XML 格式未知时的 Java XPath 命名空间

java - 在 XSLT 和 SAXON 中运行自定义 Java 函数 (9.1.8)

java - 添加复选框后 Android 应用程序崩溃

java - 如何从菜单栏打开框架

java - ImageIO.read 正在终止程序,没有错误

JavaFX 时钟数转换

java - 将 JFrame 保存为透明背景的图像

java - 如何验证只显示小于 JFrame 的几何形状

java - 将60FPS游戏克隆成四屏

java - 如何在 JScrollPane 中显示 JPanel?