我有一个2层的JLayeredPane
第一层是包裹着Image
的JPanel
。第二层是扩展JPanel
的另一个对象,叫做resizableectangle,实现KeyListener
。
我已经覆盖了KeyPressed
方法,但它没有接收keyPressed
事件,该方法没有被调用。
我已经设置了setFocusEnable(true)
并使用了grabFocus()
, requestFocus()
和requestFocusInWindows()
,但它们都返回false。
我发现当我在JFrame加载后按tab键时,Focus
转到我想要的面板,侦听器获得事件。
我已经添加了一个KeyListener
到JLayeredPane
,它工作得很好,但问题是,我想添加侦听器到面板而不是layeredPane。
我希望您将Image或ImageIcon添加到JLabel然后添加到JLabel MouseListener
然后调用
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
myPanel.grabFocus();
myPanel.requestFocus();//or requestFocusInWindows();
}
});