2

我有JLayeredPane2 层

第一层是一个JPanelWrapping Image。第二层是另一个扩展JPanel名为 ResizableRectangle 并实现的对象KeyListener

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

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

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

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

4

1 回答 1

2

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

然后只是打电话

EventQueue.invokeLater(new Runnable() {

     @Override
     public void run() {
        myPanel.grabFocus();
        myPanel.requestFocus();//or requestFocusInWindows();          
     }
});
于 2011-07-25T06:53:10.920 回答