Vla*_* T. 18 java swing focus jpanel
我有一个JPanel
内部JFrame
.我已经注册了一个KeyListener
,基于此我想要更新JPanel
.我遇到的问题是我不能把注意力集中在上面JPanel
,因此我KeyListener
不会工作.我已经知道它KeyListener
是功能性的,因为我用JFrame
它注册了它并且它工作正常.我的代码目前是这样的:
myFrame.setFocusable(false);
myPanel.setFocusable(true);
myPanel.addKeyListener(myKL);
myFrame.add(myPanel);
Run Code Online (Sandbox Code Playgroud)
以前有人遇到过这样的问题吗?我有什么遗漏吗?
PS:我没有任何组件,JPanel
我只是在背景上绘制一个图像,所以我需要把焦点放在JPanel本身而不是内部的东西上.
Dav*_*lle 22
虽然您指示面板可以对焦,但面板不会要求对焦.尝试使用myPanel.requestFocus();
.
使用setFocusable(true)
然后requestFocusInWindow()
.但后者必须完成之后由含有面板窗口可见,而您可能需要注册一个窗口监听器并执行requestFocusInWindow()
窗口激活处理程序代码.
注:后具体的窗口是可见的,不只是打电话后setVisible(true)
.