首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JPanel上获得焦点

在JPanel上获得焦点
EN

Stack Overflow用户
提问于 2010-01-26 04:04:46
回答 4查看 39.3K关注 0票数 19

我在JFrame中有一个JPanel。我已经注册了一个KeyListener,我想根据它来更新JPanel。我遇到的问题是,我无法将注意力集中在JPanel上,因此我的KeyListener无法工作。我已经知道KeyListener是有效的,因为我向JFrame注册了它,它工作得很好。我的代码目前是这样的:

代码语言:javascript
复制
myFrame.setFocusable(false);
myPanel.setFocusable(true);
myPanel.addKeyListener(myKL);
myFrame.add(myPanel);

以前有没有人遇到过这样的问题?在这方面我是不是遗漏了什么?

附言:我在JPanel中没有任何组件,我只是在背景上画了一个图像,所以我需要把焦点放在JPanel本身上,而不是放在它里面的东西上。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-26 04:16:53

尽管您指示面板可以是可聚焦的,但面板并不要求焦点。尝试使用myPanel.requestFocus();

票数 23
EN

Stack Overflow用户

发布于 2010-01-26 05:26:03

我有时也会遇到类似的问题。我注意到,在某些情况下,最好将焦点放在框架内的面板中的特定控件上(例如,您希望键盘输入转到的输入框),而不是请求窗格本身的焦点。

票数 2
EN

Stack Overflow用户

发布于 2010-01-26 07:53:25

试一试

代码语言:javascript
复制
panel.setFocusable(true);
panel.setRequestFocusEnabled(true);

// some code here

panel.grabFocus();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2135223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档