抓取焦点到JLayeredPane中的JPanel



我有一个2层的JLayeredPane

第一层是包裹着ImageJPanel。第二层是扩展JPanel的另一个对象,叫做resizableectangle,实现KeyListener

我已经覆盖了KeyPressed方法,但它没有接收keyPressed事件,该方法没有被调用。

我已经设置了setFocusEnable(true)并使用了grabFocus(), requestFocus()requestFocusInWindows(),但它们都返回false。

我发现当我在JFrame加载后按tab键时,Focus转到我想要的面板,侦听器获得事件。

我已经添加了一个KeyListenerJLayeredPane,它工作得很好,但问题是,我想添加侦听器到面板而不是layeredPane。

我希望您将Image或ImageIcon添加到JLabel然后添加到JLabel MouseListener

然后调用

EventQueue.invokeLater(new Runnable() {
     @Override
     public void run() {
        myPanel.grabFocus();
        myPanel.requestFocus();//or requestFocusInWindows();          
     }
});

最新更新