java - 获得对 JPanel 的关注

标签 java swing focus jpanel

我在 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 - 获得对 JPanel 的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2135223/

相关文章:

java - 如何在 java web 项目中创建报告?

java - 当 onCreate 中完成某些操作(不是声明或初始化)但 onClick 中未完成某些操作时,应用程序崩溃

java - 如何在 Swing 中创建 "Pick Whip"(Adobe After Effects)

java - 无法将 JTable 添加到 GUI

javascript - 在 ui-select 中添加/删除焦点

java - 无法解析包含特殊字符的值?使用 sax 解析器

java - 无法将 StringTokenizer 传递给多个方法

java - setSize() 与 setPreferredSize() 和 pack()

javafx - 警报和阶段焦点

java - 在 JFrame 中更改 JPanel 后如何请求对 JComponent 的关注