【发布时间】:2011-01-09 06:20:45
【问题描述】:
我在JFrame 中有一个JPanel。我已经注册了一个KeyListener,基于它我想更新JPanel。我遇到的问题是我无法将注意力集中在JPanel 上,因此我的KeyListener 将无法工作。我已经知道KeyListener 可以正常工作,因为我使用JFrame 注册了它并且它运行良好。我的代码现在是这样的:
myFrame.setFocusable(false);
myPanel.setFocusable(true);
myPanel.addKeyListener(myKL);
myFrame.add(myPanel);
以前有人遇到过这样的问题吗?在这方面我有什么遗漏吗?
P.S.:我在 JPanel 中没有任何组件,我只是在背景上绘制了一个图像,所以我需要将焦点放在 JPanel 本身而不是它里面的东西上。
【问题讨论】:
-
嗯,添加 myPanel.requestFocus() 这对我有用。你运行的是什么版本的 Java?
-
也许发布一个 SSCCE(简单的自包含可编译示例)来重现这一点。这会给其他人一些工作和帮助。我还通过将问题缩小到最小范围来注意到问题,有时我可以自己找到解决方案。