我正在使用 Swing 制作计算器。到目前为止,我已经创建了一个由带有 BorderLayout 的 JFrame 组成的 GUI,并在其中心放置了一个 JPanel,该 JPanel 具有一个 JLabel(代表计算器的屏幕)和一些 JButton(代表按键)。
我希望计算器能够直接从键盘接收输入,因此我将方法 addKeyListener 包含在扩展 JFrame 的类中,并将对实现 KeyListener 的类的对象的引用作为参数。
当我运行应用程序时,它接受键盘输入,直到我单击其中一个 JButton。之后使用键盘不再起作用。
我怀疑问题出在焦点上,但这不是我可以通过单击应用程序的任意位置来解决的问题。我添加了以下代码:
setFocusable(true);
到 JFrame 但它没有帮助。我读过使用 Key Bindings 可能比使用 KeyListener 更好,但我不太确定这种方法。